Beispiel #1
0
        private FunctionalUnit MergeUnit(FunctionalUnit originalUnit, FunctionalUnitRequest unit)
        {
            originalUnit.Dto       = unit.Dto;
            originalUnit.Floor     = unit.Floor;
            originalUnit.Number    = unit.Number;
            originalUnit.Ownership = this.OwnershipRepository.GetById(unit.OwnershipId);

            return(originalUnit);
        }
        public ReflectedParameter(AccessorMemberInfo key, object obj, string name, double factor, FunctionalUnit fu)
        {
            var r = (ReflectedAccessor)ReflectedItem.NewItem(key.member, obj);

            Init(r);
            Factor         = factor;
            Name           = name;
            FunctionalUnit = fu;
        }
Beispiel #3
0
        public FunctionalUnit CreateUnit(FunctionalUnitRequest request)
        {
            var unitToInsert = new FunctionalUnit();

            var entityToInsert = MergeUnit(unitToInsert, request);

            UnitRepository.Insert(entityToInsert);

            return(entityToInsert);
        }
Beispiel #4
0
        public ActionResult UpdateFunctionalUnit(FunctionalUnitViewModel unit)
        {
            var nunit = new FunctionalUnit();

            nunit = Mapper.Map <FunctionalUnit>(unit);
            var entity = Mapper.Map <FunctionalUnitRequest>(nunit);

            this.FunctionalUnitService.UpdateFunctionalUnit(entity);
            return(View());
        }
        private void removeCatchmentFromScenario(Catchment cat)
        {
            var geoData             = Scenario.GeographicData;
            var subCatchmentOutline = geoData.SubCatchmentOutline;

            if (subCatchmentOutline != null)
            {
                bool   haveMatch = false;
                double theCatVal = -99;

                foreach (KeyValuePair <double, object> kvp in subCatchmentOutline.Categories)
                {
                    string scName = (string)kvp.Value;

                    if (scName != cat.Name)
                    {
                        continue;
                    }
                    theCatVal = kvp.Key;
                    haveMatch = true;
                    break;
                }

                if (haveMatch)
                {
                    catDblsToRemove.Add(theCatVal);
                }
            }

            foreach (FunctionalUnitDefinition fudef in Scenario.SystemFunctionalUnitConfiguration.fuDefinitions)
            {
                FunctionalUnit fu = cat.getFunctionalUnit(fudef);
                if (fu is StandardFunctionalUnit)
                {
                    removeUsagesForSFU(cat, (StandardFunctionalUnit)fu);
                }
            }

            Scenario.Network.Remove(cat);
        }
Beispiel #6
0
        private void writeDataPathFunctionalUnit(StreamWriter stream, FunctionalUnit functionalUnit)
        {
            stream.WriteLine();
            stream.WriteLine($"\t-- {functionalUnit.Name} {functionalUnit.Op}({string.Join(", ", functionalUnit.Operations.Select(reg => reg.Name))})");
            stream.WriteLine($"\t{functionalUnit.Name} : {functionalUnit.VhdlCodeFile}");
            stream.WriteLine($"\t\tgeneric map({functionalUnit.Bits})");
            stream.WriteLine("\t\tport map");
            stream.WriteLine("\t\t(");

            //wire inputs
            var multiplexerInput = Multiplexers.FunctionalUnitMultiplexers.FirstOrDefault(multiplexer => multiplexer.Unit == functionalUnit);

            if (multiplexerInput != null)
            {
                var bits = multiplexerInput.OutputBitSize / 2;

                stream.WriteLine($"\t\t\tinput1({bits - 1} downto 0) => {multiplexerInput.Name}_out({bits - 1} downto 0), -- {string.Join(", ", multiplexerInput.Op.Select(op => op.Left.Name))}");
                stream.WriteLine($"\t\t\tinput2({bits - 1} downto 0) => {multiplexerInput.Name}_out({multiplexerInput.OutputBitSize - 1} downto {bits}), -- {string.Join(", ", multiplexerInput.Op.Select(op => op.Right.Name))}");
            }
            else
            {
                //wire up the input 1 (left)
                var left = RegisterAllocator.Units.First(registerUnit =>
                                                         functionalUnit.Operations.All(op => registerUnit.Registers.Contains(op.Left)));
                stream.WriteLine($"\t\t\tinput1({functionalUnit.Bits - 1} downto 0) => {left.Name}_out({left.Bits - 1} downto 0), -- {string.Join(",", functionalUnit.Operations.Select(op => op.Left.Name))}");

                //wire up the input 2 (right)
                var right = RegisterAllocator.Units.First(registerUnit =>
                                                          functionalUnit.Operations.All(op => registerUnit.Registers.Contains(op.Right)));
                stream.WriteLine($"\t\t\tinput2({functionalUnit.Bits - 1} downto 0) => {right.Name}_out({right.Bits - 1} downto 0), -- {string.Join(",", functionalUnit.Operations.Select(op => op.Right.Name))}");
            }

            //wire up the output
            stream.WriteLine($"\t\t\toutput({functionalUnit.Bits - 1} downto 0) => {functionalUnit.Name}_out({functionalUnit.Bits - 1} downto 0)");

            stream.WriteLine("\t\t);");
        }
Beispiel #7
0
 public void SetUp()
 {
     functionalUnit = new FunctionalUnit();
 }
Beispiel #8
0
 public MemoryOp(string mnemonic, MachineInstruction machineInstruction, Flag flags, FunctionalUnit.Types fuType)
     : base(mnemonic, machineInstruction, flags, fuType)
 {
     this.Displacement = BitHelper.Sext (machineInstruction[BitField.OFFSET], 16);
 }
Beispiel #9
0
 public Jump(string mnemonic, MachineInstruction machineInstruction, Flag flags, FunctionalUnit.Types fuType)
     : base(mnemonic, machineInstruction, flags, fuType)
 {
     this.Target = this[BitField.JMPTARG] << 2;
 }
Beispiel #10
0
 public IntOp(string mnemonic, MachineInstruction machineInstruction, Flag flags, FunctionalUnit.Types fuType)
     : base(mnemonic, machineInstruction, flags, fuType)
 {
 }
Beispiel #11
0
        public IntImmOp(string mnemonic, MachineInstruction machineInstruction, Flag flags, FunctionalUnit.Types fuType)
            : base(mnemonic, machineInstruction, flags, fuType)
        {
            this.Imm = (short)machineInstruction[BitField.INTIMM];

            this.ZextImm = 0x0000FFFF & machineInstruction[BitField.INTIMM];

            this.SextImm = BitHelper.Sext (machineInstruction[BitField.INTIMM], 16);
        }
Beispiel #12
0
 public FunctionalUnit UpdateUnit(FunctionalUnit originalFunctionalUnit, FunctionalUnitRequest unit)
 {
     this.MergeUnit(originalFunctionalUnit, unit);
     UnitRepository.Update(originalFunctionalUnit);
     return(originalFunctionalUnit);
 }
Beispiel #13
0
 public FunctionalUnit Update(FunctionalUnit unit)
 {
     this.UnitRepository.Update(unit);
     return(unit);
 }
        public UnitAccountStatusSummary GetUnitSummary(FunctionalUnit unit, Consortium consortium, int month)
        {
            DateTime now = DateTime.Now;
            var      configurationStartDate = DateTime.Now.AddYears(-1); // new DateTime(now.Year, month, 1);
            var      configurationEndDate   = now;                       // startDate.AddMonths(1).AddDays(-1);

            var startDate     = new DateTime(now.Year, month, 1);
            var endDate       = startDate.AddMonths(1).AddDays(-1);
            var previousMonth = new DateTime(now.Year, month, 1).AddMonths(-1);


            var consortiumConfig = this.ConsortiumConfigurationService.GetByConsortiumId(consortium.Id, configurationStartDate, configurationEndDate).ToList();

            var unitConfig = this.UnitConfigurationService.GetByUnitId(unit.Id, configurationStartDate, configurationEndDate).ToList();

            var auxConsortiumConfig = new List <ConsortiumConfigurationType>(); // = consortiumConfig.ForEach
            var auxUnitConfig       = new List <UnitConfigurationType>();       // = consortiumConfig.ForEach

            foreach (var cc in consortiumConfig)
            {
                auxConsortiumConfig.Add(cc.Type);
            }

            foreach (var cc in unitConfig)
            {
                auxUnitConfig.Add(cc.Type);
            }


            var consortiumConfigList = this.MakeConsortiumConfigList(consortiumConfig);
            var unitConfigList       = this.MakeUnitConfigList(unitConfig);



            decimal spendA = 0; decimal spendB = 0; decimal edesur = 0; decimal spendC = 0; decimal spendD = 0;
            decimal aysa = 0; decimal discount = 0; decimal expensas = 0;

            foreach (var uc in unitConfigList)
            {
                var consConfigAux = consortiumConfigList
                                    .Where(x => x.Type.Id == uc.Type.ConsortiumConfigurationType.Id)
                                    .OrderByDescending(x => x.ConfigurationDate)
                                    .FirstOrDefault();

                if (consConfigAux != null)
                {
                    var auxdebt = this.CalculateDebtFromConfigurations(uc, consConfigAux);
                    switch (consConfigAux.Type.Description.ToLower())
                    {
                    case "monto a recaudar gastos a":
                        spendA = auxdebt;
                        break;

                    case "monto a recaudar gastos b":
                        spendB = auxdebt;
                        break;

                    case "monto a recaudar gastos c":
                        spendC = auxdebt;
                        break;

                    case "monto a recaudar gastos d":
                        spendD = auxdebt;
                        break;

                    case "monto a recaudar edesur":
                        edesur = auxdebt;
                        break;

                    case "monto a recaudar aysa":
                        aysa = auxdebt;
                        break;

                    case "monto a recaudar expensas extraordinarias":
                        expensas = auxdebt;
                        break;
                    }
                }
            }
            var alreadyClosed = this.MonthClosed(consortium, endDate.Month);
            var unitAccount   = this.AccountStatusRepository.GetByUnitId(unit.Id).ToList();
            var unitPayments  = unitAccount.Where(x => x.StatusDate.Year == startDate.Year && x.StatusDate.Month == month && x.IsPayment()).Sum(x => x.Haber);
            var unitDebt      = unitAccount.Where(x => x.StatusDate.Year == previousMonth.Year && x.StatusDate.Month == previousMonth.Month && !x.IsPayment() && !x.Interest).Sum(x => x.Debe);
            var unitInterest  = unitDebt * 2 / 100;// unitAccount.Where(x => x.StatusDate.Year == previousMonth.Year && x.StatusDate.Month == previousMonth.Month && !x.IsPayment() && x.Interest).Sum(x => x.Debe);
            var currentMonth  = spendA + spendB + spendC + spendD + edesur + aysa + expensas;
            var totalUnitDebt = unitDebt + unitInterest;

            var discountConfig     = consortiumConfig.Where(x => x.Type.Description == "Descuento por pago adelantado").OrderByDescending(x => x.ConfigurationDate).FirstOrDefault();
            var discountDateConfig = consortiumConfig.Where(x => x.Type.Description == "Día límite pago adelantado").OrderByDescending(x => x.ConfigurationDate).FirstOrDefault();

            if (discountConfig != null && discountDateConfig != null && unitAccount.Any(x => x.IsPayment() && x.StatusDate.Year == startDate.Year && x.StatusDate.Month == month && x.StatusDate.Day < discountDateConfig.Value))
            {
                discount = currentMonth * (discountConfig.Value / 100);
            }

            var result = new UnitAccountStatusSummary()
            {
                Uf            = unit.Number.ToString(),
                Propietario   = unit.Owner != null ? unit.Owner.User.Name + " " + unit.Owner.User.Surname : string.Empty,
                SaldoAnterior = unitDebt,
                MesActual     = alreadyClosed ? currentMonth : 0,
                Pagos         = unitPayments,
                Aysa          = alreadyClosed ? aysa : 0,
                Edesur        = alreadyClosed ? edesur : 0,
                Expensas      = alreadyClosed ? expensas : 0,
                GastosA       = alreadyClosed ? spendA : 0,
                GastosB       = alreadyClosed ? spendB : 0,
                GastosC       = alreadyClosed ? spendC : 0,
                GastosD       = alreadyClosed ? spendD : 0,
                Dto           = unit.Dto,
                Piso          = unit.Floor.ToString(),
                SiPagaAntes   = alreadyClosed ? discount : 0,
                Intereses     = unitInterest,
                Total         = alreadyClosed ? totalUnitDebt + currentMonth - discount - unitPayments: totalUnitDebt - discount - unitPayments,
                DiscountDay   = discountConfig != null ? discountConfig.ConfigurationDate.Day : (int?)null,
                DiscountValue = alreadyClosed ? discountConfig != null ? discountConfig.Value : (decimal?)null : 0
            };

            return(result);
        }
 public ReflectedParameter(AccessorMemberInfo key, object obj, string name, FunctionalUnit fu)
     : this(key, obj, name, 1.0, fu)
 {
 }
 public static ReflectedParameter NewItem(AccessorMemberInfo member, object obj, string name, FunctionalUnit fu)
 {
     return(new ReflectedParameter(member, obj, name, fu));
 }