コード例 #1
0
        /// <summary>
        /// Get Milestone billing lines
        /// </summary>
        /// <param name="id">Milestone Id</param>
        /// <returns>Milestone billing lines view</returns>
        public ActionResult GetMilestoneBillingLines(int id)
        {
            var milestone = new Milestone();

            try
            {
                //Get milestone details
                var         milestoneService = new MilestoneService();
                MilestoneVO milestoneVO      = milestoneService.GetMilestoneById(id);

                if (milestoneVO == null)
                {
                    ModelState.AddModelError("", String.Format(Constants.ITEM_NOT_FOUND, Constants.MILESTONE));
                }
                else
                {
                    milestone = new Milestone(milestoneVO)
                    {
                        MilestoneStatusList = GetMilestoneStatusList()
                    };
                    FillMilestoneBillingLines(milestone, milestone.MilestoneBillingLines);
                }
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e.Message);
            }
            return(PartialView("_BillingLines", milestone));
        }
コード例 #2
0
        /// <summary>
        /// Convert milestone value object to Approve maintenance model
        /// </summary>
        /// <param name="milestoneVO">The milestoneVO object</param>
        public ApproveMaintenance(MilestoneVO milestoneVO)
        {
            ID                   = milestoneVO.ID;
            CompanyId            = milestoneVO.CompanyID;
            CompanyName          = milestoneVO.CompanyName;
            DivisionName         = milestoneVO.DivisionName;
            InvoiceCustomer      = milestoneVO.InvoiceCustomerName;
            ContractNumber       = milestoneVO.ContractNumber;
            InvoiceDate          = milestoneVO.InvoiceDate;
            ApprovalRequired     = milestoneVO.ApprovedByCustomer;
            ApprovalRequired     = milestoneVO.IsApprovalRequired;
            MilestoneStatusId    = milestoneVO.MilestoneStatusID;
            MilestoneStatusName  = milestoneVO.MilestoneStatusName;
            ActivityName         = milestoneVO.ActivityName;
            Percentage           = milestoneVO.Percentage;
            Amount               = milestoneVO.Amount;
            ApprovedStatus       = milestoneVO.ApprovedStatus;
            IsApproved           = milestoneVO.IsApproved;
            MilestoneDescription = milestoneVO.MilestoneStatusDescription;
            BillingLines         = milestoneVO.BillingLines;
            //MilestoneBillingLines = milestoneVO.MilestoneBillingLines;

            foreach (var milestoneBillingLineVo in milestoneVO.MilestoneBillingLineVos)
            {
                MilestoneBillingLines.Add(new MilestoneBillingLine(milestoneBillingLineVo));
            }

            milestone = new Milestone();
        }
コード例 #3
0
        /// <summary>
        /// Gets invoice milestone details for invoice file generation
        /// </summary>
        /// <param name="invoiceHeaderVO">Header details</param>
        /// <param name="invoiceGLDetail">GL coding details</param>
        /// <param name="fromDate">from date</param>
        /// <param name="toDate">to date</param>
        /// <returns></returns>
        public MilestoneVO GetMilestoneDetails(InvoiceHeaderVO invoiceHeaderVO, InvoiceGLDetailVO invoiceGLDetails,
                                               DateTime fromDate, DateTime toDate)
        {
            Milestone milestones =
                mdbDataContext.Milestones.FirstOrDefault(m => m.ID == invoiceGLDetails.MilestoneId && !m.IsDeleted);
            //Where(m => m.ContractLineID == invoiceGlDetailVO.ContractLineId
            //           && m.ContractID == invoiceHeaderVO.ContractId
            //           && m.ContractMaintenance.ID == invoiceGlDetailVO.ContractMaintenanceId &&
            //           m.MilestoneStatusID == Convert.ToInt32(Constants.MilestoneStatus.IN_PROGRESS) // 4 In Progress
            //           && m.ContractMaintenance.IsGrouped == null &&
            //           (m.EstimatedDate >= fromDate &&
            //            m.EstimatedDate <= toDate)
            //           && !m.IsDeleted).ToList();

            //foreach (var milestone in milestones)
            //{
            MilestoneVO milestoneVO = new MilestoneVO(milestones);

            //}

            return(milestoneVO);

            //Get milestone details for contract & contract lines
            //List<Milestone> milestones = mdbDataContext.Milestones.
            //                                            Where(m => m.ContractLineID == invoiceGLDetail.ContractLineId
            //                                                       && m.ContractID == invoiceHeaderVO.ContractId
            //                                                       && m.ContractMaintenance.ID == invoiceGLDetail.ContractMaintenanceId &&
            //                                                       m.MilestoneStatusID == Convert.ToInt32(Constants.MilestoneStatus.IN_PROGRESS) // 4 In Progress
            //                                                       && m.ContractMaintenance.IsGrouped == null &&
            //                                                       (m.EstimatedDate >= fromDate &&
            //                                                        m.EstimatedDate <= toDate)
            //                                                       && !m.IsDeleted).ToList();

            //return milestones.Select(milestone => new MilestoneVO(milestone)).ToList();
        }
コード例 #4
0
        public ActionResult MilestoneSave(MODEL.Milestone model)
        {
            try
            {
                MilestoneService milestoneService = new MilestoneService();

                if (ModelState.IsValid)
                {
                    //Get user id
                    int?userId = Session.GetUserId();
                    //MilestoneVO milestoneVO = new MilestoneVO(model, userId);

                    MilestoneVO milestoneVO = model.Transpose(userId);

                    milestoneService.SaveMilestone(milestoneVO);
                    return(new HttpStatusCodeResult(200));
                }
                else
                {
                    throw new ApplicationException(String.Format(Constants.CANNOT_SAVE, Constants.MILESTONE));
                }
            }
            catch (ApplicationException e)
            {
                return(new HttpStatusCodeAndErrorResult(500, e.Message));
            }
        }
コード例 #5
0
        /// <summary>
        /// Gets the Milestone Billing Line based on Milestone
        /// </summary>
        /// <param name="milestoneVO">Value object of milestone</param>
        /// <returns></returns>
        public List <MilestoneBillingLineVO> GetMilestoneBillingLines(MilestoneVO milestoneVO)
        {
            List <MilestoneBillingLine> milestoneBillingLines =
                mdbDataContext.MilestoneBillingLines.Where(
                    b => b.MilestoneID == milestoneVO.ID && b.ContractID == milestoneVO.ContractID && !b.IsDeleted).ToList();

            List <MilestoneBillingLineVO> milestoneBillingLineVos = milestoneBillingLines.Select(milestoneBillingLine => new MilestoneBillingLineVO(milestoneBillingLine)).ToList();

            return(milestoneBillingLineVos);
        }
コード例 #6
0
    private IEnumerator HoldCharacter(Character character, MilestoneVO milestoneVO)
    {
        float waitingTime = TIME_TO_PASS_UNIT / mainModel.MovingSpeed;

        Debug.Log("waitingTime: " + waitingTime);
        yield return(new WaitForSeconds(waitingTime));

        //recursive call
        processMilestonesByCharacter(character);
    }
コード例 #7
0
    protected void processMilestonesByCharacter(Character character)
    {
        MilestoneVO[] milestones = mainModel.RoundResultsByPlayerId[character.PlayerData.id].milestones;
        //if there is milestone available we need to process it
        if (milestones.Length > 0)
        {
            //shifting first element from the milestones array
            MilestoneVO   currentMilestoneVO  = milestones[0];
            int           remainingLength     = milestones.Length - 1;
            MilestoneVO[] remainingMilestones = new MilestoneVO[remainingLength];
            Array.Copy(milestones, 1, remainingMilestones, 0, remainingLength);
            mainModel.RoundResultsByPlayerId[character.PlayerData.id].milestones = remainingMilestones;

            //processing the element
            switch (currentMilestoneVO.type)
            {
            case MilestoneType.INIT:
            {
                Vector3 newPosition = currentMilestoneVO.position;
                character.transform.position = new Vector3(newPosition.x * camera.unitSize, newPosition.y * camera.unitSize, newPosition.z);
                processMilestonesByCharacter(character);
                break;
            }

            case MilestoneType.MOVE:
            case MilestoneType.BOOST:
            {
                StartCoroutine(MoveCharacter(character, currentMilestoneVO));
                break;
            }

            case MilestoneType.BLOCK:
            {
                StartCoroutine(HoldCharacter(character, currentMilestoneVO));
                break;
            }

            default:
            {
                break;
            }
            }

            currentMilestoneVO = null;
            return;
        }

        //if there is no milestone available - it means all character's milestones have been processed
        _characterMilestonesProcessedCounter++;
        if (_characterMilestonesProcessedCounter == _characters.Length)
        {
            _characterMilestonesProcessedCounter = 0;
            Messenger.Broadcast(ViewEvent.COMPLETE);
        }
    }
コード例 #8
0
        /// <summary>
        /// Save the milestone
        /// </summary>
        /// <param name="milestoneVO">Value object of milestone</param>
        public void SaveMilestone(MilestoneVO milestoneVO)
        {
            if (milestoneVO.ID != 0)
            {
                //Update Existing Record
                Milestone selectedMilestone = mdbDataContext.Milestones.SingleOrDefault(c => c.ID == milestoneVO.ID);
                selectedMilestone.ContractID        = milestoneVO.ContractID;
                selectedMilestone.ContractLineID    = milestoneVO.ContractLineID;
                selectedMilestone.MaintenanceID     = milestoneVO.ContractMaintenanceID;
                selectedMilestone.EstimatedDate     = milestoneVO.InvoiceDate;
                selectedMilestone.RenewalStartDate  = milestoneVO.RenewalStartDate;
                selectedMilestone.RenewalEndDate    = milestoneVO.RenewalEndDate;
                selectedMilestone.Amount            = milestoneVO.Amount;
                selectedMilestone.IsApproved        = milestoneVO.IsApproved;
                selectedMilestone.MilestoneStatusID = milestoneVO.MilestoneStatusID;
                selectedMilestone.MilestoneStatus   = milestoneVO.MilestoneStatusName;
                selectedMilestone.LastUpdatedBy     = milestoneVO.LastUpdatedByUserId;
                selectedMilestone.LastUpdatedDate   = DateTime.Now;

                //ContractMaintenance maintenance = mdbDataContext.ContractMaintenances.SingleOrDefault(cm => cm.ID == milestoneVO.ContractMaintenanceID);
                //maintenance.Comment = milestoneVO.Comments;

                //Save contract maintenace lines
                foreach (var item in milestoneVO.MilestoneBillingLineVos)
                {
                    MilestoneBillingLine milestoneBillingLine =
                        selectedMilestone.MilestoneBillingLines.ToList().Find(x => x.ID == item.ID && x.ID != 0);

                    if (milestoneBillingLine != null)
                    {
                        milestoneBillingLine.LineText        = !string.IsNullOrEmpty(item.LineText) ? item.LineText.Trim() : item.LineText;
                        milestoneBillingLine.LineSequance    = item.LineSequance;
                        milestoneBillingLine.ContractID      = milestoneVO.ContractID;
                        milestoneBillingLine.MilestoneID     = milestoneVO.ID;
                        milestoneBillingLine.LastUpdatedBy   = milestoneVO.LastUpdatedByUserId;
                        milestoneBillingLine.LastUpdatedDate = DateTime.Now;
                    }
                    else
                    {
                        selectedMilestone.MilestoneBillingLines.Add(new MilestoneBillingLine()
                        {
                            LineText     = !string.IsNullOrEmpty(item.LineText) ? item.LineText.Trim() : item.LineText,
                            LineSequance = item.LineSequance,
                            ContractID   = milestoneVO.ContractID,
                            MilestoneID  = milestoneVO.ID,
                            CreatedBy    = milestoneVO.CreatedByUserId,
                            CreationDate = DateTime.Now
                        });
                    }
                }

                mdbDataContext.SubmitChanges();
            }
        }
コード例 #9
0
        /// <summary>
        /// Get milestone details by Id
        /// </summary>
        /// <param name="milestoneId">milestone id</param>
        /// <returns>Milestone details</returns>
        public MilestoneVO GetMilestoneById(int milestoneId)
        {
            Milestone   milestone   = mdbDataContext.Milestones.SingleOrDefault(c => c.ID == milestoneId);
            MilestoneVO milestoneVO = null;

            if (milestone != null)
            {
                milestoneVO = new MilestoneVO(milestone);
            }

            return(milestoneVO);
        }
コード例 #10
0
        /// <summary>
        /// Create nominal line
        /// </summary>
        /// <param name="invoiceHeaderVO">Invoice header value object</param>
        /// <param name="nominalLine">Nominal line</param>
        /// <param name="milestone">Milestone object</param>
        private void CreateNominalLine(InvoiceHeaderVO invoiceHeaderVO, InvoiceGLDetailVO nominalLine,
                                       MilestoneVO milestone)
        {
            nominalLine.TaxCode          = invoiceHeaderVO.VatCode;
            nominalLine.Value            = milestone.Amount;
            nominalLine.RenewalStartDate = String.Format("{0:ddMMyyyy}",
                                                         milestone.RenewalStartDate.Value);
            nominalLine.RenewalEndDate   = String.Format("{0:ddMMyyyy}", milestone.RenewalEndDate.Value);
            nominalLine.ContractDetails  = invoiceHeaderVO.CompanyId == 159 ? "N,D," : "Y,D,";
            nominalLine.ContractDetails += nominalLine.RenewalStartDate + " to " +
                                           nominalLine.RenewalEndDate + ",M" + milestone.ID;

            nominalLine.GroupId           = milestone.GroupId;
            nominalLine.PeriodFrequencyId = milestone.PeriodFrequencyId;
        }
コード例 #11
0
 /// <summary>
 /// Update milestone details from Approve Maintenance screen
 /// </summary>
 /// <param name="milestoneVO">Value object of Milestone</param>
 public void UpdateMilestone(MilestoneVO milestoneVO)
 {
     if (milestoneVO.ID != 0)
     {
         //Update Existing Record
         Milestone selectedMilestone = mdbDataContext.Milestones.SingleOrDefault(c => c.ID == milestoneVO.ID);
         if (selectedMilestone != null)
         {
             selectedMilestone.Amount            = milestoneVO.Amount;
             selectedMilestone.IsApproved        = milestoneVO.IsApproved;
             selectedMilestone.MilestoneStatusID = milestoneVO.MilestoneStatusID;
             selectedMilestone.LastUpdatedBy     = milestoneVO.LastUpdatedByUserId;
             selectedMilestone.LastUpdatedDate   = DateTime.Now;
             mdbDataContext.SubmitChanges();
         }
     }
 }
コード例 #12
0
        public Milestone(MilestoneVO milestoneVO)
            : this()
        {
            ID                         = milestoneVO.ID;
            OldMilestoneID             = milestoneVO.OldMilestoneID;
            CompanyID                  = milestoneVO.CompanyID;
            CompanyName                = milestoneVO.CompanyName;
            ContractNumber             = milestoneVO.ContractNumber;
            ContractID                 = milestoneVO.ContractID;
            ContractLineID             = milestoneVO.ContractLineID;
            ContractMaintenanceID      = milestoneVO.ContractMaintenanceID;
            MilestoneStatusID          = milestoneVO.MilestoneStatusID;
            MilestoneStatus            = milestoneVO.MilestoneStatusName;
            MilestoneStatusDescription = milestoneVO.MilestoneStatusDescription;
            InvoiceDate                = milestoneVO.InvoiceDate;
            Amount                     = milestoneVO.Amount;
            RenewalEndDate             = milestoneVO.RenewalEndDate.HasValue ? milestoneVO.RenewalEndDate : null;
            RenewalStartDate           = milestoneVO.RenewalStartDate.HasValue ? milestoneVO.RenewalStartDate : null;
            Description                = milestoneVO.Description;
            Percentage                 = milestoneVO.Percentage;
            IndexRate                  = milestoneVO.IndexRate;
            PreviousValue              = milestoneVO.PreviousValue;
            PreviousLine               = milestoneVO.PreviousLine;
            IsApprovalRequired         = milestoneVO.IsApprovalRequired;
            ApprovedStatus             = milestoneVO.ApprovedStatus;
            ApprovedBy                 = milestoneVO.ApprovedBy;
            ApprovedByCustomer         = milestoneVO.ApprovedByCustomer;
            CustomerApprovedStatus     = milestoneVO.CustomerApprovedStatus;
            ConditionType              = milestoneVO.ConditionType;
            SLT_OUR_REF_2              = milestoneVO.SLT_OUR_REF_2;
            CompanyName                = milestoneVO.CompanyName;
            InvoiceCustomerName        = milestoneVO.InvoiceCustomerName;
            ContractNumber             = milestoneVO.ContractNumber;
            ActivityName               = milestoneVO.ActivityName;
            IsApproved                 = milestoneVO.IsApproved;
            Comments                   = milestoneVO.Comments;
            UpliftForMilestone         = milestoneVO.UpliftForMilestone;
            ActualBillDate             = milestoneVO.ActualBillDate;

            foreach (var item in milestoneVO.MilestoneBillingLineVos)
            {
                MilestoneBillingLines.Add(new MilestoneBillingLine(item));
            }
        }
コード例 #13
0
        /// <summary>
        /// Return list of milestone of grouped contract maintenance lines
        /// </summary>
        /// <param name="invoiceHeaderVO">The invoice header deatils</param>
        /// <param name="invoiceGLDetail">The coding line deatils</param>
        /// <param name="fromDate">From date</param>
        /// <param name="toDate">To date</param>
        /// <returns></returns>
        public List <MilestoneVO> GetGroupedMilestoneDetails(InvoiceHeaderVO invoiceHeaderVO, List <InvoiceGLDetailVO> invoiceGLDetail,
                                                             DateTime fromDate, DateTime toDate)
        {
            List <MilestoneVO> milestoneVos = new List <MilestoneVO>();

            foreach (var invoiceGlDetailVO in invoiceGLDetail)
            {
                //Get milestone details for contract & contract lines
                List <Milestone> milestones = mdbDataContext.Milestones.
                                              Where(m => m.ContractLineID == invoiceGlDetailVO.ContractLineId &&
                                                    m.ContractID == invoiceHeaderVO.ContractId &&
                                                    m.MilestoneStatusID == Convert.ToInt32(Constants.MilestoneStatus.IN_PROGRESS) &&                 // 4 In Progress
                                                    (m.EstimatedDate >= fromDate && m.EstimatedDate <= toDate) &&
                                                    m.ContractMaintenance.IsGrouped == true &&
                                                    m.ContractMaintenance.GroupId == invoiceGlDetailVO.GroupId &&
                                                    m.ContractMaintenance.ChargeFrequencyID == invoiceGlDetailVO.PeriodFrequencyId &&
                                                    !m.IsDeleted).ToList();

                foreach (var milestone in milestones)
                {
                    MilestoneVO milestoneVO = new MilestoneVO(milestone);

                    MilestoneVO mlVO = milestoneVos.Find(m => m.ID == milestoneVO.ID);

                    if (mlVO == null)
                    {
                        milestoneVos.Add(milestoneVO);
                    }
                }
            }

            //var gpMilestones = (from milestone in milestoneVos
            //                    select new
            //                               {
            //                                   milestone.ContractLineID,
            //                                   milestone.GroupId,
            //                                   milestone.PeriodFrequencyId
            //                               }).GroupBy(g => new {g.ContractLineID, g.GroupId, g.PeriodFrequencyId}).ToList();

            //return gpMilestones;
            return(milestoneVos);
            //return milestones.Select(milestone => new MilestoneVO(milestone)).ToList();
        }
コード例 #14
0
        /// <summary>
        /// Transpose model milestone object to milestone value object
        /// </summary>
        /// <param name="contractMaintenance"></param>
        public MilestoneVO Transpose(int?userId)
        {
            MilestoneVO milestoneVO = new MilestoneVO();

            milestoneVO.ID                         = this.ID;
            milestoneVO.OldMilestoneID             = this.OldMilestoneID;
            milestoneVO.ContractID                 = this.ContractID;
            milestoneVO.ContractLineID             = this.ContractLineID;
            milestoneVO.ContractMaintenanceID      = this.ContractMaintenanceID;
            milestoneVO.MilestoneStatusID          = this.MilestoneStatusID;
            milestoneVO.MilestoneStatusDescription = this.MilestoneStatusDescription;
            milestoneVO.MilestoneStatusName        = this.MilestoneStatus;
            milestoneVO.InvoiceDate                = this.InvoiceDate;
            milestoneVO.Amount                     = this.Amount;
            milestoneVO.RenewalEndDate             = this.RenewalEndDate;
            milestoneVO.RenewalStartDate           = this.RenewalStartDate;
            milestoneVO.CreatedByUserId            = userId;
            milestoneVO.LastUpdatedByUserId        = userId;
            milestoneVO.Description                = this.Description;
            milestoneVO.Percentage                 = this.Percentage;
            milestoneVO.IndexRate                  = this.IndexRate;
            milestoneVO.PreviousValue              = this.PreviousValue;
            milestoneVO.PreviousLine               = this.PreviousLine;
            milestoneVO.IsApprovalRequired         = this.IsApprovalRequired;
            milestoneVO.ApprovedStatus             = this.ApprovedStatus;
            milestoneVO.ApprovedBy                 = this.ApprovedBy;
            milestoneVO.ApprovedByCustomer         = this.ApprovedByCustomer;
            milestoneVO.CustomerApprovedStatus     = this.CustomerApprovedStatus;
            milestoneVO.ConditionType              = this.ConditionType;
            milestoneVO.SLT_OUR_REF_2              = this.SLT_OUR_REF_2;
            milestoneVO.IsApproved                 = this.IsApproved;
            milestoneVO.Comments                   = this.Comments;


            milestoneVO.UpliftForMilestone = this.UpliftForMilestone;

            FillBillingLines(this);

            milestoneVO.MilestoneBillingLineVos = MilestoneBillingLineVos;

            return(milestoneVO);
        }
コード例 #15
0
        /// <summary>
        /// Saves Billing Line
        /// </summary>
        /// <param name="milestoneVO">MilestoneVo to save</param>
        public void SaveBillingLine(MilestoneVO milestoneVO)
        {
            if (milestoneVO != null)
            {
                ContractMaintenance maintenance = mdbDataContext.ContractMaintenances.SingleOrDefault(cm => cm.ID == milestoneVO.ContractMaintenanceID);
                //maintenance.Comment = milestoneVO.Comments;
                maintenance.Comment = !string.IsNullOrEmpty(milestoneVO.Comments) ? milestoneVO.Comments.Trim() : milestoneVO.Comments;

                //Save milestone billing details
                foreach (var item in milestoneVO.MilestoneBillingLineVos)
                {
                    MilestoneBillingLine milestoneBillingLine =
                        mdbDataContext.MilestoneBillingLines.SingleOrDefault(b => b.ID == item.ID && !b.IsDeleted);

                    if (milestoneBillingLine != null)
                    {
                        milestoneBillingLine.LineText        = !string.IsNullOrEmpty(item.LineText) ? item.LineText.Trim() : item.LineText;
                        milestoneBillingLine.LineSequance    = item.LineSequance;
                        milestoneBillingLine.ContractID      = milestoneVO.ContractID;
                        milestoneBillingLine.MilestoneID     = milestoneVO.ID;
                        milestoneBillingLine.LastUpdatedBy   = milestoneVO.LastUpdatedByUserId;
                        milestoneBillingLine.LastUpdatedDate = DateTime.Now;
                    }
                    else
                    {
                        MilestoneBillingLine newMilestoneBillingLine = new MilestoneBillingLine
                        {
                            LineText     = !string.IsNullOrEmpty(item.LineText) ? item.LineText.Trim() : item.LineText,
                            LineSequance = item.LineSequance,
                            ContractID   = milestoneVO.ContractID,
                            MilestoneID  = milestoneVO.ID,
                            CreatedBy    = milestoneVO.CreatedByUserId,
                            CreationDate = DateTime.Now
                        };
                        mdbDataContext.MilestoneBillingLines.InsertOnSubmit(newMilestoneBillingLine);
                    }
                }

                mdbDataContext.SubmitChanges();
            }
        }
コード例 #16
0
        /// <summary>
        /// Return default billing
        /// </summary>
        /// <param name="contractId"></param>
        /// <param name="groupId"></param>
        /// <param name="periodFrequencyId"></param>
        /// <param name="fromDate"></param>
        /// <param name="toDate"></param>
        /// <returns></returns>
        public MilestoneVO GetDefaultBillingLine(int contractId, int?groupId, int periodFrequencyId, DateTime fromDate,
                                                 DateTime toDate)
        {
            Milestone milestone =
                mdbDataContext.Milestones.FirstOrDefault(
                    m => m.ContractID == contractId && m.ContractMaintenance.GroupId == groupId &&
                    m.ContractMaintenance.ChargeFrequencyID == periodFrequencyId &&
                    m.ContractMaintenance.IsDefaultLineInGroup == true && !m.IsDeleted && !m.ContractMaintenance.IsDeleted &&
                    m.EstimatedDate >= fromDate && m.EstimatedDate <= toDate);

            #region Khushboo

            MilestoneVO milestoneVO = null;

            if (milestone != null)
            {
                //MilestoneVO milestoneVO = new MilestoneVO(milestone);
                milestoneVO = new MilestoneVO(milestone);
                //return milestoneVO;
            }
            else
            {
                //Billing line tag of that particular(original billing text) billing line
                Milestone milestoneOfParticularBillingLine =
                    mdbDataContext.Milestones.FirstOrDefault(
                        m => m.ContractID == contractId && m.ContractMaintenance.GroupId == groupId &&
                        m.ContractMaintenance.ChargeFrequencyID == periodFrequencyId &&
                        !m.IsDeleted && !m.ContractMaintenance.IsDeleted &&
                        m.EstimatedDate >= fromDate && m.EstimatedDate <= toDate);
                milestoneVO = new MilestoneVO(milestoneOfParticularBillingLine);
                //return null;
            }
            return(milestoneVO);

            #endregion
        }
コード例 #17
0
    protected IEnumerator MoveCharacter(Character character, MilestoneVO milestoneVO)
    {
        //calculating target position and a distance to it in pixels
        Vector3 startPosition = character.Position;
        Vector3 endPosition   = milestoneVO.position * camera.unitSize;
        float   totalDistance = Vector3.Distance(startPosition, endPosition);

        //assuming we have constant time to pass one unit (let's say 1 sec for simplicity)
        //than total time to pass all distance in units is equal to a total distance in units divided by speed
        //so

        float totalTime  = ((totalDistance / camera.unitSize) * TIME_TO_PASS_UNIT) / (mainModel.MovingSpeed * milestoneVO.speed);
        float startTime  = Time.time;
        float timePassed = Time.time - startTime;

        //updating position smoothly
        while (totalTime > timePassed)
        {
            Vector3 newPosition = Vector3.Lerp(startPosition, endPosition, timePassed / totalTime);
            character.transform.position = newPosition;

            //if it is User's character recently moved we need camera to be centered at the character's position
            if (character.PlayerData.id == mainModel.User.id)
            {
                Vector3 position = character.transform.position;
                position.x += character.GetComponent <SpriteRenderer>().bounds.size.x / 2;
                Messenger <Vector3> .Broadcast(ViewEvent.POSITION_UPDATED, position);
            }

            timePassed = Time.time - startTime;
            yield return(null);
        }

        //recursive call
        processMilestonesByCharacter(character);
    }
コード例 #18
0
        /// <summary>
        /// Process invoice details - N & X line
        /// </summary>
        /// <param name="invoiceDetails">Invoice details object</param>
        /// <param name="invoiceHeaderVO">Invoice header object</param>
        /// <param name="fromDate">from date</param>
        /// <param name="toDate">to date</param>
        /// <returns></returns>
        private List <InvoiceDetailVO> ProcessInvoiceDetails(List <InvoiceGLDetailVO> invoiceDetails,
                                                             InvoiceHeaderVO invoiceHeaderVO, DateTime fromDate,
                                                             DateTime toDate)
        {
            var invoiceDetailVos = new List <InvoiceDetailVO>();

            //Process only grouped billing details/ milestone lines
            invoiceDetailVos.AddRange(ProcessGroupedBillingLines(invoiceDetails, invoiceHeaderVO, fromDate, toDate));


            // process line for ungrouped milestone & billing details
            foreach (var invoiceGlDetail in invoiceDetails)
            {
                if (invoiceGlDetail.IsGrouped != true)
                {
                    // Get milestone details
                    MilestoneVO milestoneVos = approveMaintenanceDAL.GetMilestoneDetails(invoiceHeaderVO,
                                                                                         invoiceGlDetail,
                                                                                         fromDate, toDate);

                    //foreach (var milestoneVo in milestoneVos)
                    //{
                    if (milestoneVos.IsGrouped == null || milestoneVos.IsGrouped == false)
                    {
                        InvoiceDetailVO invoiceDetailVO = new InvoiceDetailVO();

                        // Create clone object of GL line object
                        InvoiceGLDetailVO nominalLine = new InvoiceGLDetailVO(invoiceGlDetail);

                        if (ValidateJobCode(invoiceHeaderVO, nominalLine) == false)
                        {
                            //ARBS-144-to have customer name and customer code in error file
                            string error =
                                String.Format(Constants.JOB_CODE_MISSING + "'" + invoiceHeaderVO.ContractNumber +
                                              "', "
                                              + "Company - '" + invoiceHeaderVO.CompanyId + " - " +
                                              invoiceHeaderVO.CompanyName + " , Customer Name - " + invoiceHeaderVO.CustomerName + " , Customer Code - " + invoiceHeaderVO.CustomerCode + "'");
                            if (!errorList.Contains(error))
                            {
                                errorList.Add(error);
                            }
                            isValid = false;
                        }

                        CreateNominalLine(invoiceHeaderVO, nominalLine, milestoneVos);

                        //glDetail.TaxCode = invoiceHeaderVO.VatCode;
                        //glDetail.Value = milestoneVo.Amount;
                        //glDetail.RenewalStartDate = String.Format("{0:ddMMyyyy}",
                        //                                          milestoneVo.RenewalStartDate.Value);
                        //glDetail.RenewalEndDate = String.Format("{0:ddMMyyyy}", milestoneVo.RenewalEndDate.Value);
                        //glDetail.ContractDetails = invoiceHeaderVO.CompanyId == 159 ? "N,D," : "Y,D,";
                        //glDetail.ContractDetails += glDetail.RenewalStartDate + " to " +
                        //                            glDetail.RenewalEndDate + ",M" + milestoneVo.ID;

                        //Add GL details to invoice header
                        //invoiceDetailVO.InvoiceGlDetails = glDetail;

                        if (!invoiceDetailVO.NominalLinesList.Contains(nominalLine))
                        {
                            invoiceDetailVO.NominalLinesList.Add(nominalLine);
                        }

                        string billingLines = milestoneVos.MilestoneBillingLineVos.Aggregate(string.Empty,
                                                                                             (current, billingLine)
                                                                                             =>
                                                                                             current +
                                                                                             billingLine.LineText);

                        //Generate Billing line details for - extra line for invoice flat file
                        if (string.IsNullOrEmpty(billingLines))
                        {
                            string error = String.Format(Constants.MISSING_BILLING_LINES + "'" + invoiceHeaderVO.ContractNumber + "'," + "Company - '" + invoiceHeaderVO.CompanyId + "'");
                            if (!errorList.Contains(error))
                            {
                                errorList.Add(error);
                            }
                        }

                        InvoiceBillingLineVO invoiceBillingLine =
                            new InvoiceBillingLineVO(milestoneVos.MilestoneBillingLineVos);

                        invoiceBillingLine.VatCode   = invoiceHeaderVO.VatCode;
                        invoiceBillingLine.Amount    = milestoneVos.Amount;
                        invoiceBillingLine.Qty       = milestoneVos.QTY;
                        invoiceBillingLine.UnitPrice =
                            Convert.ToDecimal(String.Format(Constants.STRING_FORMAT_FOR_NUMERIC_VALUE,
                                                            (milestoneVos.Amount / invoiceBillingLine.Qty)));


                        invoiceDetailVO.isCreaditInvoice = nominalLine.Value < 0;

                        invoiceDetailVO.InvoiceBillingLines = invoiceBillingLine;

                        invoiceDetailVos.Add(invoiceDetailVO);
                        //}
                    }
                }
            }
            // Invoice details associated with header
            return(invoiceDetailVos);
        }
コード例 #19
0
 /// <summary>
 /// Save the milestone
 /// </summary>
 /// <param name="milestoneVO">Value object of milestone</param>
 public void SaveMilestone(MilestoneVO milestoneVO)
 {
     milestoneDAL.SaveMilestone(milestoneVO);
 }
コード例 #20
0
 /// <summary>
 /// Update milestone details from Approve Maintenance screen
 /// </summary>
 /// <param name="milestoneVO"></param>
 public void UpdateMilestone(MilestoneVO milestoneVO)
 {
     milestoneDAL.UpdateMilestone(milestoneVO);
 }
コード例 #21
0
 /// <summary>
 /// Gets milestone billing lines associated with milestone
 /// </summary>
 /// <param name="milestoneVO"></param>
 /// <returns></returns>
 public List <MilestoneBillingLineVO> GetMilestoneBillingLines(MilestoneVO milestoneVO)
 {
     return(milestoneDAL.GetMilestoneBillingLines(milestoneVO));
 }
コード例 #22
0
 /// <summary>
 /// Save billing lines from Approve mainatenance screen.
 /// </summary>
 /// <param name="milestoneVO"></param>
 public void SaveBillingLines(MilestoneVO milestoneVO)
 {
     milestoneDAL.SaveBillingLine(milestoneVO);
 }
コード例 #23
0
        /// <summary>
        /// Process grouped billing lines with milestone
        /// </summary>
        /// <param name="invoiceDetails"></param>
        /// <param name="invoiceHeaderVO"></param>
        /// <param name="fromDate"></param>
        /// <param name="toDate"></param>
        /// <returns></returns>
        private List <InvoiceDetailVO> ProcessGroupedBillingLines(List <InvoiceGLDetailVO> invoiceDetails, InvoiceHeaderVO invoiceHeaderVO, DateTime fromDate,
                                                                  DateTime toDate)
        {
            List <InvoiceDetailVO> invoiceDetailVos = new List <InvoiceDetailVO>();

            List <MilestoneVO> milestoneVoList = approveMaintenanceDAL.GetGroupedMilestoneDetails(invoiceHeaderVO,
                                                                                                  invoiceDetails,
                                                                                                  fromDate, toDate);

            //Get milestone details by group
            var groupedMilestones = (from milestone in milestoneVoList
                                     select new
            {
                milestone.ContractMaintenanceID,
                milestone.ContractLineID,
                milestone.ID,
                milestone.GroupId,
                milestone.PeriodFrequencyId
            }).GroupBy(g => new { g.GroupId, g.PeriodFrequencyId }).ToList();

            // How many nonimal line per group
            foreach (var groupedMilestone in groupedMilestones)
            {
                InvoiceDetailVO          invoiceDetail  = new InvoiceDetailVO();
                List <InvoiceGLDetailVO> nominalLineVos = new List <InvoiceGLDetailVO>();

                int totalQty = 0;
                foreach (var item in groupedMilestone)
                {
                    InvoiceGLDetailVO nominalLine =
                        invoiceDetails.FirstOrDefault(c => c.ContractLineId == item.ContractLineID &&
                                                      c.ContractMaintenanceId == item.ContractMaintenanceID &&
                                                      c.MilestoneId == item.ID &&
                                                      c.GroupId == groupedMilestone.Key.GroupId &&
                                                      c.PeriodFrequencyId == groupedMilestone.Key.PeriodFrequencyId);

                    MilestoneVO milestone = milestoneVoList.FirstOrDefault(m => m.ID == item.ID &&
                                                                           m.GroupId == groupedMilestone.Key.GroupId &&
                                                                           m.PeriodFrequencyId == groupedMilestone.Key.PeriodFrequencyId);

                    if (milestone != null)
                    {
                        InvoiceGLDetailVO invoiceGlDetailVO = new InvoiceGLDetailVO(nominalLine);
                        CreateNominalLine(invoiceHeaderVO, invoiceGlDetailVO, milestone);

                        totalQty += milestone.QTY;
                        nominalLineVos.Add(invoiceGlDetailVO);
                    }
                }

                // Check how many coding lines are grouped based on period frequency and group id
                //var grpedMilestoneVo = milestoneVoList.Where(m => m.GroupId == groupedMilestone.Key.GroupId
                //                                                  &&
                //                                                  m.PeriodFrequencyId ==
                //                                                  groupedMilestone.Key.PeriodFrequencyId)
                //                                      .GroupBy(g => g.ContractMaintenanceID).ToList();



                //foreach (var nLine in grpedMilestoneVo)
                //{
                //    InvoiceGLDetailVO nominalLine =
                //        invoiceDetails.FirstOrDefault(c => c.ContractMaintenanceId == nLine.Key &&
                //                                           c.GroupId == groupedMilestone.Key.GroupId &&
                //                                           c.PeriodFrequencyId == groupedMilestone.Key.PeriodFrequencyId);

                //    InvoiceGLDetailVO invoiceGlDetailVO = new InvoiceGLDetailVO(nominalLine);

                //    //InvoiceGLDetailVO nominalLine =
                //    //    approveMaintenanceDAL.GetContractLineBasedOnContractMaintenanceId(nLine.Key);

                //    MilestoneVO milestone =
                //        milestoneVoList.FirstOrDefault(m => m.ContractLineID == invoiceGlDetailVO.ContractLineId
                //                                            && m.ContractMaintenanceID == nLine.Key &&
                //                                            m.IsGrouped == true
                //                                            && m.PeriodFrequencyId == groupedMilestone.Key.PeriodFrequencyId
                //                                            && m.GroupId == groupedMilestone.Key.GroupId);


                //    CreateNominalLine(invoiceHeaderVO, invoiceGlDetailVO, milestone);

                //    totalQty += milestone.QTY;
                //    nominalLineVos.Add(invoiceGlDetailVO);
                //}

                MilestoneVO defaultPrintingBillingLine =
                    milestoneVoList.FirstOrDefault(m => m.GroupId == groupedMilestone.Key.GroupId &&
                                                   m.PeriodFrequencyId == groupedMilestone.Key.PeriodFrequencyId &&
                                                   m.IsDefaultLineInGroup == true);

                //If default print line milestone not found in milestone list then get default milestone line database
                if (defaultPrintingBillingLine == null)
                {
                    MilestoneVO milestoneVO = approveMaintenanceDAL.GetDefaultBillingLine(nominalLineVos[0].ContractId,
                                                                                          nominalLineVos[0].GroupId,
                                                                                          nominalLineVos[0].PeriodFrequencyId,
                                                                                          fromDate, toDate);
                    if (milestoneVO == null)
                    {
                        string error = String.Format(Constants.MILESTONE_MISSING + "'" +
                                                     invoiceHeaderVO.ContractNumber + "',"
                                                     + "Company - '" + invoiceHeaderVO.CompanyId + "'");
                        if (!errorList.Contains(error))
                        {
                            errorList.Add(error);
                        }
                    }
                    else
                    {
                        defaultPrintingBillingLine = milestoneVO;

                        string billingLines = defaultPrintingBillingLine.MilestoneBillingLineVos.Aggregate(string.Empty,
                                                                                                           (current,
                                                                                                            billingLine) =>
                                                                                                           current +
                                                                                                           billingLine
                                                                                                           .LineText);

                        //Generate Billing line details for - extra line for invoice flat file
                        if (string.IsNullOrEmpty(billingLines))
                        {
                            string error =
                                String.Format(Constants.MISSING_BILLING_LINES + "'" + invoiceHeaderVO.ContractNumber + "',"
                                              + "Company - '" + invoiceHeaderVO.CompanyId + "'");

                            errorList.Add(error);
                        }
                    }
                }

                //To check defaultPrintingLine is not null
                if (defaultPrintingBillingLine != null)
                {
                    string billingLines = defaultPrintingBillingLine.MilestoneBillingLineVos.Aggregate(string.Empty,
                                                                                                       (current,
                                                                                                        billingLine) =>
                                                                                                       current +
                                                                                                       billingLine
                                                                                                       .LineText);

                    //Generate Billing line details for - extra line for invoice flat file
                    if (string.IsNullOrEmpty(billingLines))
                    {
                        string error =
                            String.Format(Constants.MISSING_BILLING_LINES + "'" + invoiceHeaderVO.ContractNumber + "',"
                                          + "Company - '" + invoiceHeaderVO.CompanyId + "'");

                        if (!errorList.Contains(error))
                        {
                            errorList.Add(error);
                        }
                    }

                    decimal amount = nominalLineVos.Sum(nLine => nLine.Value);

                    invoiceDetail.isCreaditInvoice = amount < 0;

                    InvoiceBillingLineVO invoiceBillingLine =
                        new InvoiceBillingLineVO(defaultPrintingBillingLine.MilestoneBillingLineVos);

                    invoiceBillingLine.VatCode   = invoiceHeaderVO.VatCode;
                    invoiceBillingLine.Amount    = amount;   //defaultPrintingBillingLine.Amount;
                    invoiceBillingLine.Qty       = totalQty; //defaultPrintingBillingLine.QTY;
                    invoiceBillingLine.UnitPrice =
                        Convert.ToDecimal(String.Format(Constants.STRING_FORMAT_FOR_NUMERIC_VALUE,
                                                        (amount / invoiceBillingLine.Qty)));

                    //Add nominal line
                    invoiceDetail.NominalLinesList = nominalLineVos;
                    // Add X line billing printing line
                    invoiceDetail.InvoiceBillingLines = invoiceBillingLine;

                    //Add N & X line details in header
                    invoiceDetailVos.Add(invoiceDetail);
                }
            }

            return(invoiceDetailVos);
        }