Esempio n. 1
0
        public InventoryLedger GetNewestInventoryLedgerByDate(Session session, Guid _ItemUnitId, Guid _InventoryId, DateTime _IssueDate)
        {
            try
            {
                ItemUnit _ItemUnit = session.GetObjectByKey <ItemUnit>(_ItemUnitId);
                NAS.DAL.Nomenclature.Inventory.Inventory _Inventory = session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(_InventoryId);

                if (_ItemUnit == null || _Inventory == null)
                {
                    return(null);
                }

                CriteriaOperator criteria_RowStatus = new BinaryOperator("RowStatus", Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria_ItemUnit  = new BinaryOperator("ItemUnitId", _ItemUnit, BinaryOperatorType.Equal);
                CriteriaOperator criteria_Inventory = new BinaryOperator("InventoryId", _Inventory, BinaryOperatorType.Equal);
                CriteriaOperator criteria_IssueDate = new BinaryOperator("IssueDate", _IssueDate, BinaryOperatorType.LessOrEqual);

                CriteriaOperator criteria = CriteriaOperator.And(criteria_Inventory, criteria_ItemUnit, criteria_RowStatus);
                XPCollection <InventoryLedger> InventoryLedgerCol = new XPCollection <InventoryLedger>(session, criteria);
                InventoryLedgerCol.Sorting.Add(new SortProperty("IssueDate", SortingDirection.Descending));
                InventoryLedgerCol.Sorting.Add(new SortProperty("CreateDate", SortingDirection.Descending));
                InventoryLedger newestLedger = InventoryLedgerCol.FirstOrDefault();
                return(newestLedger);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Esempio n. 2
0
        public InventoryLedger GetPreviousInventoryLedger(Session session, DateTime IssueDate, Guid InventoryId, Guid AccountId, Guid LotID, Guid ItemUnitId)
        {
            InventoryLedger result = null;

            try
            {
                NAS.DAL.Nomenclature.Inventory.Inventory inventory = session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(InventoryId);
                Account  account  = session.GetObjectByKey <Account>(AccountId);
                Lot      lot      = session.GetObjectByKey <Lot>(LotID);
                ItemUnit itemUnit = session.GetObjectByKey <ItemUnit>(ItemUnitId);
                if (inventory == null || account == null || lot == null || itemUnit == null)
                {
                    return(null);
                }

                CriteriaOperator criteria_RowStatus = new BinaryOperator("RowStatus", Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual);
                CriteriaOperator criteria_IssueDate = new BinaryOperator("IssueDate", IssueDate, BinaryOperatorType.LessOrEqual);
                CriteriaOperator criteria_Inventory = new BinaryOperator("InventoryId", inventory, BinaryOperatorType.Equal);
                CriteriaOperator criteria_Account   = new BinaryOperator("AccountId", account, BinaryOperatorType.Equal);
                CriteriaOperator criteria_Lot       = new BinaryOperator("LotId", lot, BinaryOperatorType.Equal);
                CriteriaOperator criteria_ItemUnit  = new BinaryOperator("ItemUnitId", itemUnit, BinaryOperatorType.Equal);

                CriteriaOperator criteria = CriteriaOperator.And(criteria_IssueDate, criteria_RowStatus, criteria_Inventory, criteria_Account, criteria_Lot, criteria_ItemUnit);

                XPCollection <InventoryLedger> inventoryLedgerCol = new XPCollection <InventoryLedger>(session, criteria);
            }
            catch (Exception)
            {
                return(result);
            }
            return(result);
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="uow"></param>
        /// <param name="credit"></param>
        /// <param name="debit"></param>
        /// <param name="createDate"></param>
        /// <param name="price"></param>
        /// <param name="issueDate"></param>
        /// <param name="inventoryTransactionId"></param>
        /// <param name="inventoryId"></param>
        /// <param name="itemUnitId"></param>
        /// <param name="CurrencyId"></param>
        public void CreateCOGS(
            Session session,
            double credit,
            double debit,
            DateTime createDate,
            double price,
            DateTime issueDate,
            Guid inventoryTransactionId,
            Guid inventoryId,
            Guid itemUnitId,
            Guid currencyId)
        {
            InventoryTransaction transaction = session.GetObjectByKey <InventoryTransaction>(inventoryTransactionId);

            if (transaction == null)
            {
                throw new Exception("The InventoryTransaction is not exist in system");
            }

            NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(inventoryId);
            if (inventory == null)
            {
                throw new Exception("The Inventory is not exist in system");
            }

            ItemUnit itemUnit = session.GetObjectByKey <ItemUnit>(itemUnitId);

            if (itemUnit == null)
            {
                throw new Exception("The ItemUnit is not exist in system");
            }

            Currency currency = session.GetObjectByKey <Currency>(currencyId);

            if (currency == null)
            {
                throw new Exception("The Currency is not exist in system");
            }

            COGS cogs = new COGS(session);

            cogs.Balance                = 0;
            cogs.Total                  = 0;
            cogs.Credit                 = credit;
            cogs.Debit                  = debit;
            cogs.CreateDate             = createDate;
            cogs.UpdateDate             = createDate;
            cogs.Price                  = price;
            cogs.Assumption             = 1;
            cogs.IssueDate              = issueDate;
            cogs.InventoryTransactionId = transaction;
            cogs.InventoryId            = inventory;
            cogs.ItemUnitId             = itemUnit;
            cogs.CurrencyId             = currency;
            cogs.Save();
        }
        public CustomFieldDataPreDefinitionData GetData(Guid objectCustomFieldId)
        {
            CustomFieldDataPreDefinitionData ret = null;
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();

                ObjectCustomField objectCustomField = session.GetObjectByKey <ObjectCustomField>(objectCustomFieldId);

                if (objectCustomField.ObjectCustomFieldDatas != null)
                {
                    ret = new CustomFieldDataPreDefinitionData();

                    foreach (var data in objectCustomField.ObjectCustomFieldDatas)
                    {
                        PredefinitionData predefinitionData = (PredefinitionData)data.CustomFieldDataId;

                        NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                            session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(predefinitionData.RefId);

                        if (inventory != null)
                        {
                            CustomFieldDataPreDefinitionDataItem item = new CustomFieldDataPreDefinitionDataItem()
                            {
                                CustomFieldDataId = predefinitionData.CustomFieldDataId,
                                PredefinitionType = predefinitionData.PredefinitionType,
                                RefId             = predefinitionData.RefId,
                                DisplayText       = inventory.Name
                            };
                            ret.Add(item);
                        }
                    }
                }
                return(ret);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }
Esempio n. 5
0
        public Guid CreateInventoryPlanningJournal(Session session, Guid transactionId, Guid itemUnitId, double amount, Guid lotId, Guid inventoryId, string description)
        {
            Guid result = Guid.Empty;

            try
            {
                InventoryTransaction transaction = session.GetObjectByKey <InventoryTransaction>(transactionId);
                ItemUnit             itemUnit    = session.GetObjectByKey <ItemUnit>(itemUnitId);
                Lot lot = session.GetObjectByKey <Lot>(lotId);
                NAS.DAL.Nomenclature.Inventory.Inventory inventory = session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(inventoryId);
                CriteriaOperator filter  = new BinaryOperator("Code", DefaultAccountEnum.OWNER_INVENTORY, BinaryOperatorType.Equal);
                Account          account = session.FindObject <Account>(filter);

                InventoryJournal creditJournal = new InventoryJournal(session);
                creditJournal.JournalType            = Constant.PLANNING_JOURNAL;
                creditJournal.InventoryTransactionId = transaction;
                creditJournal.AccountId   = account;
                creditJournal.ItemUnitId  = itemUnit;
                creditJournal.LotId       = lot;
                creditJournal.InventoryId = inventory;
                creditJournal.CreateDate  = DateTime.Now;
                creditJournal.Credit      = amount;
                creditJournal.Description = description;
                creditJournal.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                creditJournal.Save();

                InventoryJournal debitJournal = new InventoryJournal(session);
                debitJournal.JournalType            = Constant.PLANNING_JOURNAL;
                debitJournal.InventoryTransactionId = transaction;
                debitJournal.AccountId   = account;
                debitJournal.ItemUnitId  = itemUnit;
                debitJournal.LotId       = lot;
                debitJournal.InventoryId = inventory;
                debitJournal.CreateDate  = DateTime.Now;
                debitJournal.Debit       = amount;
                debitJournal.Description = description;
                debitJournal.RowStatus   = Constant.ROWSTATUS_ACTIVE;
                debitJournal.Save();
            }
            catch (Exception)
            {
                throw;
            }
            return(result);
        }
Esempio n. 6
0
 public CorrespondInventoryDim CreateCorrespondInventoryDim(Session session, Guid RefId)
 {
     try
     {
         NAS.DAL.Nomenclature.Inventory.Inventory inventory = session.GetObjectByKey <NAS.DAL.Nomenclature.Inventory.Inventory>(RefId);
         if (inventory == null)
         {
             return(null);
         }
         CorrespondInventoryDim inventoryDim = new CorrespondInventoryDim(session);
         inventoryDim.Code        = inventory.Code;
         inventoryDim.Description = inventory.Description;
         inventoryDim.RefId       = RefId;
         inventoryDim.Name        = inventory.Name;
         inventoryDim.RowStatus   = Constant.ROWSTATUS_ACTIVE;
         inventoryDim.Save();
         return(inventoryDim);
     }
     catch (Exception)
     {
         return(null);
     }
 }
Esempio n. 7
0
 public InventoryLedger GetNewestInventoryLedger(Session session, ItemUnit _ItemUnit, NAS.DAL.Nomenclature.Inventory.Inventory _Inventory)
 {
     return(GetNewestInventoryLedger(session, _ItemUnit.ItemUnitId, _Inventory.InventoryId));
 }
Esempio n. 8
0
 public double GetItemUnitBalance(Session session, ItemUnit _ItemUnit, NAS.DAL.Nomenclature.Inventory.Inventory _Inventory)
 {
     return(GetItemUnitBalance(session, _ItemUnit.ItemUnitId, _Inventory.InventoryId));
 }
Esempio n. 9
0
        public static void Populate()
        {
            Session session = null;

            try
            {
                session = XpoHelper.GetNewSession();
                //insert default data into Inventory table
                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("Name", Utility.Constant.NAAN_DEFAULT_NAME))
                {
                    Nomenclature.Organization.Organization.Populate();

                    XPQuery <Nomenclature.Organization.Organization> organizationQuery =
                        session.Query <Nomenclature.Organization.Organization>();

                    Nomenclature.Organization.Organization organization =
                        organizationQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();

                    InventoryUnit.Populate();

                    XPQuery <InventoryUnit> inventoryUnitQuery = session.Query <InventoryUnit>();

                    InventoryUnit inventoryUnit =
                        inventoryUnitQuery.Where(r => r.Name == Utility.Constant.NAAN_DEFAULT_NAME).FirstOrDefault();


                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        Name                 = Utility.Constant.NAAN_DEFAULT_NAME,
                        Description          = "",
                        OrganizationId       = organization,
                        InventoryUnitId      = inventoryUnit,
                        RowStatus            = -1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }

                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("InventoryId", "fa31071d-6010-4788-83b9-9f0ce0c90c5f"))
                {
                    Nomenclature.Organization.Organization.Populate();

                    XPQuery <Nomenclature.Organization.Organization> organizationQuery =
                        session.Query <Nomenclature.Organization.Organization>();

                    Nomenclature.Organization.Organization organization =
                        organizationQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();

                    InventoryUnit.Populate();

                    XPQuery <InventoryUnit> inventoryUnitQuery = session.Query <InventoryUnit>();

                    InventoryUnit inventoryUnit =
                        inventoryUnitQuery.Where(r => r.Name == Utility.Constant.NAAN_DEFAULT_NAME).FirstOrDefault();


                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        InventoryId          = Guid.Parse("fa31071d-6010-4788-83b9-9f0ce0c90c5f"),
                        Name                 = "Kho mặc định",
                        Code                 = "KHOMACDINH",
                        Description          = "",
                        OrganizationId       = organization,
                        InventoryUnitId      = inventoryUnit,
                        RowStatus            = 1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }

                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("Code", "DEFAULTCST"))
                {
                    Nomenclature.Organization.Organization.Populate();

                    XPQuery <Nomenclature.Organization.Organization> organizationQuery =
                        session.Query <Nomenclature.Organization.Organization>();

                    Nomenclature.Organization.Organization organization =
                        organizationQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();

                    InventoryUnit.Populate();

                    XPQuery <InventoryUnit> inventoryUnitQuery = session.Query <InventoryUnit>();

                    InventoryUnit inventoryUnit =
                        inventoryUnitQuery.Where(r => r.Name == Utility.Constant.NAAN_DEFAULT_NAME).FirstOrDefault();


                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        Code                 = "DEFAULTCST",
                        Name                 = "Kho khách hàng",
                        Description          = "",
                        OrganizationId       = organization,
                        InventoryUnitId      = inventoryUnit,
                        RowStatus            = -1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }

                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("Code", "TRANSITINVENTORY"))
                {
                    Nomenclature.Organization.Organization.Populate();

                    XPQuery <Nomenclature.Organization.Organization> organizationQuery =
                        session.Query <Nomenclature.Organization.Organization>();

                    Nomenclature.Organization.Organization organization =
                        organizationQuery.Where(r => r.Code == Utility.Constant.NAAN_DEFAULT_CODE).FirstOrDefault();

                    InventoryUnit.Populate();

                    XPQuery <InventoryUnit> inventoryUnitQuery = session.Query <InventoryUnit>();

                    InventoryUnit inventoryUnit =
                        inventoryUnitQuery.Where(r => r.Name == Utility.Constant.NAAN_DEFAULT_NAME).FirstOrDefault();

                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        Code                 = "TRANSITINVENTORY",
                        Name                 = "Kho trung chuyển",
                        Description          = "",
                        OrganizationId       = organization,
                        InventoryUnitId      = inventoryUnit,
                        RowStatus            = -1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }

                if (!Util.isExistXpoObject <NAS.DAL.Nomenclature.Inventory.Inventory>("Code", Utility.Constant.NAAN_DEFAULT_NOTAVAILABLE))
                {
                    NAS.DAL.Nomenclature.Inventory.Inventory inventory =
                        new NAS.DAL.Nomenclature.Inventory.Inventory(session)
                    {
                        Code                 = Utility.Constant.NAAN_DEFAULT_NOTAVAILABLE,
                        Name                 = Utility.Constant.NAAN_DEFAULT_NOTAVAILABLE,
                        Description          = Utility.Constant.NAAN_DEFAULT_NOTAVAILABLE,
                        RowStatus            = 1,
                        RowCreationTimeStamp = DateTime.Now
                    };
                    inventory.Save();
                }
            }
            catch (Exception)
            {
                session.RollbackTransaction();
                throw;
            }
            finally
            {
                if (session != null)
                {
                    session.Dispose();
                }
            }
        }