Ejemplo n.º 1
0
 public int Add(Data.Models.BreakDownAttachment BreakDownAttachment)
 {
     _BreakdownAttachmenRepository.Insert(BreakDownAttachment);
     return(BreakDownAttachment.Id);
 }
Ejemplo n.º 2
0
        public void SaveBreakdownData(BreakDownGridModel[] breakDownData, BreakDownServiceGridModel[] ServiceData, BreakDownManPowerGridModel[] MenPowerData
                                      , BreakDownPartGridModel[] PartData, BreakDownAttachmentGridModel[] AttachmentData,
                                      int[] DeletedServiceIds, int[] DeletedMenPowerIds, int[] DeletedPartIds, int[] DeletedAttIds, int userId)
        {
            if (DeletedServiceIds != null && DeletedServiceIds.Length > 0)
            {
                // Delete
                //int[] serviceItemIds = DeletedServiceIds; //ServiceData.Select(s => s.Id).ToArray();
                var deleteServiceItems = this._breakDownServiceRepository.Table.Where(w => DeletedServiceIds.Contains(w.Id));
                this._breakDownServiceRepository.Delete(deleteServiceItems);
            }

            if (DeletedMenPowerIds != null && DeletedMenPowerIds.Length > 0)
            {
                // Delete
                //int[] manpowerItemIds = DeletedMenPowerIds; //ManPowerData.Select(s => s.Id).ToArray();
                var deleteMenPowerItems = this._breakDownMenPowerRepository.Table.Where(w => DeletedMenPowerIds.Contains(w.Id));
                this._breakDownMenPowerRepository.Delete(deleteMenPowerItems);
            }

            if (DeletedPartIds != null && DeletedPartIds.Length > 0)
            {
                //Delete
                //int[] partItemIds = DeletedPartIds; //PartData.Select(s => s.Id).ToArray();
                var deletePartItems = this._breakDownSpareRepository.Table.Where(w => DeletedPartIds.Contains(w.Id));
                this._breakDownSpareRepository.Delete(deletePartItems);
            }
            if (DeletedAttIds != null && DeletedAttIds.Length > 0)
            {
                //Delete
                //int[] partItemIds = DeletedPartIds; //PartData.Select(s => s.Id).ToArray();
                var deleteAttachmentItems = this._breakdownAttachmentRepository.Table.Where(w => DeletedAttIds.Contains(w.Id));
                this._breakdownAttachmentRepository.Delete(deleteAttachmentItems);
            }

            for (int i = 0; i < breakDownData.Length; i++)
            {
                BreakDownGridModel item = breakDownData[i];

                Data.Models.BreakDown existingBreakDown = null;
                //int breakDownId = item.Id;

                if (item.Id > 0)
                {
                    existingBreakDown = this._breakDownRepository.Table.FirstOrDefault(f => f.Id == item.Id);
                }

                if (existingBreakDown == null)
                {
                    // Insert
                    Data.Models.BreakDown NewBreakDown = new Data.Models.BreakDown
                    {
                        PlantId            = item.PlantId,
                        LineId             = item.LineId,
                        MachineId          = item.MachineId,
                        SubAssemblyId      = item.SubAssemblyId,
                        Date               = item.Date.Value,
                        IsHistory          = item.IsHistory,
                        IsRepeated         = item.IsRepeated,
                        IsMajor            = item.IsMajor,
                        StartTime          = item.StartTime.Value.TimeOfDay,
                        EndTime            = item.StopTime.Value.TimeOfDay,
                        TotalTime          = item.TotalTime.Value,
                        FailureDescription = string.IsNullOrEmpty(item.FailureDescription) ? item.FailureDescription : item.FailureDescription.Replace("&nbsp;", " "),
                        ElectricalTime     = item.ElecticalTime,
                        MechTime           = item.MechTime,
                        InstrTime          = item.InstrTime,
                        UtilityTime        = item.UtilityTime,
                        PowerTime          = item.PowerTime,
                        ProcessTime        = item.ProcessTime,
                        PrvTime            = item.PrvTime,
                        IdleTime           = item.IdleTime,
                        SpareTypeId        = item.SpareTypeId,
                        SpareDescription   = item.SpareDescription,
                        DoneBy             = item.DoneBy,
                        RootCause          = string.IsNullOrEmpty(item.RootCause) ? item.RootCause : item.RootCause.Replace("&nbsp;", " "),
                        Correction         = string.IsNullOrEmpty(item.Correction) ? item.Correction : item.Correction.Replace("&nbsp;", " "),
                        CorrectiveAction   = string.IsNullOrEmpty(item.CorrectiveAction) ? item.CorrectiveAction : item.CorrectiveAction.Replace("&nbsp;", " "),
                        PreventingAction   = string.IsNullOrEmpty(item.PreventingAction) ? item.PreventingAction : item.PreventingAction.Replace("&nbsp;", " "),
                        CreatedBy          = userId,
                        CreatedDate        = DateTime.UtcNow
                    };

                    //if (item.ElecticalTime != null)
                    //    NewBreakDown.ElectricalTime = item.ElecticalTime.Value.TimeOfDay;
                    //if (item.MechTime != null)
                    //    NewBreakDown.MechTime = item.MechTime.Value.TimeOfDay;
                    //if (item.InstrTime != null)
                    //    NewBreakDown.InstrTime = item.InstrTime.Value.TimeOfDay;
                    //if (item.UtilityTime != null)
                    //    NewBreakDown.UtilityTime = item.UtilityTime.Value.TimeOfDay;
                    //if (item.PowerTime != null)
                    //    NewBreakDown.PowerTime = item.PowerTime.Value.TimeOfDay;
                    //if (item.ProcessTime != null)
                    //    NewBreakDown.ProcessTime = item.ProcessTime.Value.TimeOfDay;
                    //if (item.PrvTime != null)
                    //    NewBreakDown.PrvTime = item.PrvTime.Value.TimeOfDay;
                    //if (item.IdleTime != null)
                    //    NewBreakDown.IdleTime = item.IdleTime.Value.TimeOfDay;
                    if (item.ResolveTimeTaken != null)
                    {
                        NewBreakDown.ResolveTimeTaken = item.ResolveTimeTaken.Value.TimeOfDay;
                    }

                    this._breakDownRepository.Insert(NewBreakDown);
                    existingBreakDown = NewBreakDown;
                }
                else
                {
                    // Update
                    //existingBreakDown.PlantId = item.PlantId;
                    //existingBreakDown.LineId = item.LineId;

                    if (existingBreakDown.MachineId != item.MachineId || existingBreakDown.SubAssemblyId != item.SubAssemblyId || existingBreakDown.IsHistory != item.IsHistory ||
                        existingBreakDown.IsRepeated != item.IsRepeated || existingBreakDown.IsMajor != item.IsMajor ||
                        existingBreakDown.Date != item.Date.Value || existingBreakDown.StartTime != item.StartTime.Value.TimeOfDay || existingBreakDown.EndTime != item.StopTime.Value.TimeOfDay ||
                        existingBreakDown.TotalTime != item.TotalTime.Value || existingBreakDown.FailureDescription != item.FailureDescription || existingBreakDown.ElectricalTime != item.ElecticalTime ||
                        existingBreakDown.MechTime != item.MechTime || existingBreakDown.InstrTime != item.InstrTime || existingBreakDown.UtilityTime != item.UtilityTime ||
                        existingBreakDown.PowerTime != item.PowerTime || existingBreakDown.ProcessTime != item.ProcessTime || existingBreakDown.PrvTime != item.PrvTime ||
                        existingBreakDown.IdleTime != item.IdleTime || existingBreakDown.SpareTypeId != item.SpareTypeId || existingBreakDown.SpareDescription != item.SpareDescription ||
                        existingBreakDown.DoneBy != item.DoneBy || existingBreakDown.RootCause != item.RootCause || existingBreakDown.Correction != item.Correction ||
                        existingBreakDown.PreventingAction != item.PreventingAction || existingBreakDown.CorrectiveAction != item.CorrectiveAction)
                    {
                        existingBreakDown.MachineId          = item.MachineId;
                        existingBreakDown.SubAssemblyId      = item.SubAssemblyId;
                        existingBreakDown.IsHistory          = item.IsHistory;
                        existingBreakDown.IsRepeated         = item.IsRepeated;
                        existingBreakDown.IsMajor            = item.IsMajor;
                        existingBreakDown.Date               = item.Date.Value;
                        existingBreakDown.StartTime          = item.StartTime.Value.TimeOfDay;
                        existingBreakDown.EndTime            = item.StopTime.Value.TimeOfDay;
                        existingBreakDown.TotalTime          = item.TotalTime.Value;
                        existingBreakDown.FailureDescription = string.IsNullOrEmpty(item.FailureDescription) ? item.FailureDescription : item.FailureDescription.Replace("&nbsp;", " ");
                        existingBreakDown.ElectricalTime     = item.ElecticalTime;
                        existingBreakDown.MechTime           = item.MechTime;
                        existingBreakDown.InstrTime          = item.InstrTime;
                        existingBreakDown.UtilityTime        = item.UtilityTime;
                        existingBreakDown.PowerTime          = item.PowerTime;
                        existingBreakDown.ProcessTime        = item.ProcessTime;
                        existingBreakDown.PrvTime            = item.PrvTime;
                        existingBreakDown.IdleTime           = item.IdleTime;
                        existingBreakDown.SpareTypeId        = item.SpareTypeId;
                        existingBreakDown.SpareDescription   = item.SpareDescription;
                        existingBreakDown.DoneBy             = item.DoneBy;
                        existingBreakDown.RootCause          = string.IsNullOrEmpty(item.RootCause) ? item.RootCause : item.RootCause.Replace("&nbsp;", " ");
                        existingBreakDown.Correction         = string.IsNullOrEmpty(item.Correction) ? item.Correction : item.Correction.Replace("&nbsp;", " ");
                        existingBreakDown.CorrectiveAction   = string.IsNullOrEmpty(item.CorrectiveAction) ? item.CorrectiveAction : item.CorrectiveAction.Replace("&nbsp;", " ");
                        existingBreakDown.PreventingAction   = string.IsNullOrEmpty(item.PreventingAction) ? item.PreventingAction : item.PreventingAction.Replace("&nbsp;", " ");
                        existingBreakDown.UpdatedBy          = userId;
                        existingBreakDown.UpdatedDate        = DateTime.UtcNow;
                        if (item.ResolveTimeTaken != null)
                        {
                            existingBreakDown.ResolveTimeTaken = item.ResolveTimeTaken.Value.TimeOfDay;
                        }

                        this._breakDownRepository.Update(existingBreakDown);
                    }



                    //if (item.ElecticalTime != null)
                    //    existingBreakDown.ElectricalTime = item.ElecticalTime.Value.TimeOfDay;
                    //if (item.MechTime != null)
                    //    existingBreakDown.MechTime = item.MechTime.Value.TimeOfDay;
                    //if (item.InstrTime != null)
                    //    existingBreakDown.InstrTime = item.InstrTime.Value.TimeOfDay;
                    //if (item.UtilityTime != null)
                    //    existingBreakDown.UtilityTime = item.UtilityTime.Value.TimeOfDay;
                    //if (item.PowerTime != null)
                    //    existingBreakDown.PowerTime = item.PowerTime.Value.TimeOfDay;
                    //if (item.ProcessTime != null)
                    //    existingBreakDown.ProcessTime = item.ProcessTime.Value.TimeOfDay;
                    //if (item.PrvTime != null)
                    //    existingBreakDown.PrvTime = item.PrvTime.Value.TimeOfDay;
                    //if (item.IdleTime != null)
                    //    existingBreakDown.IdleTime = item.IdleTime.Value.TimeOfDay;
                }

                if (ServiceData != null)
                {
                    var ServiceDataForBreakDown = ServiceData.Where(w => w.BreakDownId == item.Id).ToArray();
                    for (int j = 0; j < ServiceDataForBreakDown.Length; j++)
                    {
                        BreakDownServiceGridModel           serviceItem         = ServiceDataForBreakDown[j];
                        ProERP.Data.Models.BreakDownService existingServiceItem = this._breakDownServiceRepository.Table.FirstOrDefault(w => w.Id == serviceItem.Id);

                        if (existingServiceItem == null)
                        {
                            // Insert
                            Data.Models.BreakDownService NewService = new Data.Models.BreakDownService
                            {
                                BreakDownId = existingBreakDown.Id,
                                VendorName  = serviceItem.VendorName,
                                Cost        = serviceItem.Cost,
                                Comments    = serviceItem.Comments
                            };

                            this._breakDownServiceRepository.Insert(NewService);
                        }
                        else
                        {
                            // Update
                        }
                    }
                }

                if (MenPowerData != null)
                {
                    var MenPowerDataForBreakDown = MenPowerData.Where(w => w.BreakDownId == item.Id).ToArray();
                    for (int k = 0; k < MenPowerDataForBreakDown.Length; k++)
                    {
                        BreakDownManPowerGridModel           menpowerItem         = MenPowerDataForBreakDown[k];
                        ProERP.Data.Models.BreakDownMenPower existingMenPowerItem = this._breakDownMenPowerRepository.Table.FirstOrDefault(w => w.Id == menpowerItem.Id);
                        if (existingMenPowerItem == null)
                        {
                            if (!menpowerItem.IsOverTime)
                            {
                                menpowerItem.HourlyRate = 0;
                            }
                            // Insert
                            Data.Models.BreakDownMenPower NewMenPower = new Data.Models.BreakDownMenPower
                            {
                                BreakDownId    = existingBreakDown.Id,
                                Name           = menpowerItem.Name,
                                EmployeeTypeId = menpowerItem.EmployeeTypeId,
                                Comments       = menpowerItem.Comments,
                                HourlyRate     = menpowerItem.HourlyRate,
                            };

                            this._breakDownMenPowerRepository.Insert(NewMenPower);
                        }
                        else
                        {
                            // Update
                        }
                    }
                }

                if (PartData != null)
                {
                    var PartDataForBreakDown = PartData.Where(w => w.BreakDownId == item.Id).ToArray();
                    for (int l = 0; l < PartDataForBreakDown.Length; l++)
                    {
                        BreakDownPartGridModel            partItem         = PartDataForBreakDown[l];
                        ProERP.Data.Models.BreakDownSpare existingPartItem = this._breakDownSpareRepository.Table.FirstOrDefault(w => w.Id == partItem.Id);
                        if (existingPartItem == null)
                        {
                            // Insert
                            Data.Models.BreakDownSpare NewPart = new Data.Models.BreakDownSpare
                            {
                                BreakDownId = existingBreakDown.Id,
                                PartId      = partItem.PartId,
                                Quantity    = partItem.Quantity,
                                Comments    = partItem.Comments
                            };

                            this._breakDownSpareRepository.Insert(NewPart);
                        }
                        else
                        {
                            // Update
                        }
                    }
                }
                if (AttachmentData != null)
                {
                    var AttachmentDataForBreakDown = AttachmentData.Where(w => w.BreakDownId == item.Id).ToArray();
                    for (int m = 0; m < AttachmentDataForBreakDown.Length; m++)
                    {
                        BreakDownAttachmentGridModel           AttachmentItem         = AttachmentDataForBreakDown[m];
                        ProERP.Data.Models.BreakDownAttachment existingAttachmentItem = this._breakdownAttachmentRepository.Table.FirstOrDefault(w => w.Id == AttachmentItem.Id);

                        if (existingAttachmentItem == null)
                        {
                            // Insert
                            Data.Models.BreakDownAttachment NewService = new Data.Models.BreakDownAttachment
                            {
                                BreakDownId      = existingBreakDown.Id,
                                OriginalFileName = AttachmentItem.OriginalFileName,
                                SysFileName      = AttachmentItem.SysFileName
                            };

                            this._breakdownAttachmentRepository.Insert(NewService);
                        }
                        else
                        {
                            // Update
                        }
                    }
                }
            }
        }