All files / app/src/features/measure/lib validate-operations.ts

13.04% Statements 3/23
100% Branches 0/0
0% Functions 0/2
13.04% Lines 3/23

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 311x             1x                       1x                      
import { comparePackages, getAccountingObjectForOperations } from '@/features/measure'
import { checkValidationByConditions, validateCommonWarehouseContract } from '@/features/validator'
import { OperationType } from '@/entities/accounting-object'
import { Pipe } from '@/entities/pipe'
import { Package } from '@/entities/package'
import { WareHouseContract } from '@/entities/warehouse-contract'
 
export const isShipmentAvailable = (packages: Package[], pipes?: Pipe[], warehouseContract?: WareHouseContract) => {
  const objects = getAccountingObjectForOperations(pipes, warehouseContract)
  const isMoreThanOneWarehouseContract = validateCommonWarehouseContract(objects)
  if (isMoreThanOneWarehouseContract) return false
  const isNotValidStatus = checkValidationByConditions(objects, OperationType.SHIPMENT)
  if (isNotValidStatus) return false
  if (packages?.length) {
    return comparePackages(packages, pipes)
  }
  return true
}
 
export const isRealizationAvailable = (packages: Package[], pipes?: Pipe[], warehouseContract?: WareHouseContract) => {
  const objects = getAccountingObjectForOperations(pipes, warehouseContract)
  const isMoreThanOneWarehouseContract = validateCommonWarehouseContract(objects)
  if (isMoreThanOneWarehouseContract) return false
  const isNotValidStatus = checkValidationByConditions(objects, OperationType.REALIZATION)
  if (isNotValidStatus) return false
  if (packages?.length) {
    return comparePackages(packages, pipes)
  }
  return true
}