Ejemplo n.º 1
0
        /// <summary>
        /// Manipulates item Trans based on material nature
        /// </summary>
        /// <param name="itemNature"></param>
        /// <param name="itemTrans"></param>
        /// <param name="itemTransDef"></param>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public static void ItemNatureHandler(WarehouseItemNatureEnum itemNature, WarehouseTransaction itemTrans,
                                             TransWarehouseDef itemTransDef)
        {
            switch (itemNature)
            {
            case WarehouseItemNatureEnum.WarehouseItemNatureUndefined:
                throw new ArgumentOutOfRangeException();

            case WarehouseItemNatureEnum.WarehouseItemNatureMaterial:
                itemTrans.InventoryAction      = itemTransDef.MaterialInventoryAction;
                itemTrans.InventoryValueAction = itemTransDef.MaterialInventoryValueAction;
                itemTrans.InvoicedVolumeAction = itemTransDef.MaterialInvoicedVolumeAction;
                itemTrans.InvoicedValueAction  = itemTransDef.MaterialInvoicedValueAction;
                break;

            case WarehouseItemNatureEnum.WarehouseItemNatureService:
                itemTrans.InventoryAction      = itemTransDef.ServiceInventoryAction;
                itemTrans.InventoryValueAction = itemTransDef.ServiceInventoryValueAction;
                itemTrans.InvoicedVolumeAction = itemTransDef.MaterialInvoicedVolumeAction;
                itemTrans.InvoicedValueAction  = itemTransDef.MaterialInvoicedValueAction;
                break;

            case WarehouseItemNatureEnum.WarehouseItemNatureExpense:
                itemTrans.InventoryAction      = itemTransDef.ExpenseInventoryAction;
                itemTrans.InventoryValueAction = itemTransDef.ExpenseInventoryValueAction;
                itemTrans.InvoicedVolumeAction = itemTransDef.MaterialInvoicedVolumeAction;
                itemTrans.InvoicedValueAction  = itemTransDef.MaterialInvoicedValueAction;
                break;

            case WarehouseItemNatureEnum.WarehouseItemNatureIncome:
                itemTrans.InventoryAction      = itemTransDef.IncomeInventoryAction;
                itemTrans.InventoryValueAction = itemTransDef.IncomeInventoryValueAction;
                itemTrans.InvoicedVolumeAction = itemTransDef.MaterialInvoicedVolumeAction;
                itemTrans.InvoicedValueAction  = itemTransDef.MaterialInvoicedValueAction;
                break;

            case WarehouseItemNatureEnum.WarehouseItemNatureFixedAsset:
                itemTrans.InventoryAction      = itemTransDef.FixedAssetInventoryAction;
                itemTrans.InventoryValueAction = itemTransDef.FixedAssetInventoryValueAction;
                itemTrans.InvoicedVolumeAction = itemTransDef.MaterialInvoicedVolumeAction;
                itemTrans.InvoicedValueAction  = itemTransDef.MaterialInvoicedValueAction;
                break;

            case WarehouseItemNatureEnum.WarehouseItemNatureRawMaterial:
                itemTrans.InventoryAction      = itemTransDef.RawMaterialInventoryAction;
                itemTrans.InventoryValueAction = itemTransDef.RawMaterialInventoryValueAction;
                itemTrans.InvoicedVolumeAction = itemTransDef.MaterialInvoicedVolumeAction;
                itemTrans.InvoicedValueAction  = itemTransDef.MaterialInvoicedValueAction;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Ejemplo n.º 2
0
        // public IList<WarehouseItem> WarehouseItem { get;set; }

        public async Task <IActionResult> OnGetAsync(string sortOrder, string searchString, string warehouseItemNatureFilter, int?pageIndex, int?pageSize, string sd)
        {
            LoadFilters();

            PageSize        = (int)((pageSize == null || pageSize == 0) ? 20 : pageSize);
            CurrentPageSize = PageSize;
            CurrentSort     = sortOrder;
            NameSort        = sortOrder == "Name" ? "name_desc" : "Name";
            DateSort        = sortOrder == "Date" ? "date_desc" : "Date";

            if (searchString != null)
            {
                pageIndex = 1;
            }
            else
            {
                searchString = CurrentFilter;
            }
            CurrentFilter             = searchString;
            WarehouseItemNatureFilter = warehouseItemNatureFilter;

            IQueryable <WarehouseItem> fullListIq = from s in _context.WarehouseItems
                                                    select s;


            WarehouseItemNatureEnum natureFilterValue = WarehouseItemNatureEnum.WarehouseItemNatureUndefined;

            if (WarehouseItemNatureFilter is null)
            {
                natureFilterValue = 0;
            }
            else
            {
                int b = Int32.Parse(WarehouseItemNatureFilter);
                natureFilterValue = (WarehouseItemNatureEnum)b;
            }

            if (natureFilterValue != WarehouseItemNatureEnum.WarehouseItemNatureUndefined)
            {
                fullListIq = fullListIq.Where(s => s.WarehouseItemNature == natureFilterValue);
            }

            if (!String.IsNullOrEmpty(searchString))
            {
                fullListIq = fullListIq.Where(s => s.Name.Contains(searchString));
            }

            switch (sortOrder)
            {
            case "Name":
                fullListIq   = fullListIq.OrderBy(p => p.Name);
                NameSortIcon = "fas fa-sort-alpha-up ";
                DateSortIcon = "invisible";
                break;

            case "name_desc":
                fullListIq   = fullListIq.OrderByDescending(p => p.Name);
                NameSortIcon = "fas fa-sort-alpha-down ";
                DateSortIcon = "invisible";
                break;

            default:
                fullListIq = fullListIq.OrderBy(p => p.Id);
                break;
            }
            var t = fullListIq.ProjectTo <WarehouseItemListDto>(_mapper.ConfigurationProvider);

            ListItems = await PagedList <WarehouseItemListDto> .CreateAsync(
                t, pageIndex ?? 1, PageSize);

            return(Page());
        }