/// <summary> /// Metoto encargado de guardar o actualizar un vehiculo /// en la base de datos de systime /// </summary> /// <param name="entityVehicle"></param> /// <param name="userModify"></param> /// <returns></returns> public Vehicles SaveVehicle(Vehicles entityVehicle, String userModify) { Vehicles currentVehicle = null; Boolean changeUpdateEntity = false; if (entityVehicle != null) { using (SystimedbEntities Systimedb = new SystimedbEntities(ConectionString)) { List <Vehicles> entitiesCurrentVehicles = Systimedb.Vehicles.Where(v => v.Plate == entityVehicle.Plate).ToList(); if (entitiesCurrentVehicles == null || entitiesCurrentVehicles.Count == 0) { entitiesCurrentVehicles = Systimedb.Vehicles.Where(v => v.IdVinNumber == entityVehicle.IdVinNumber).ToList(); } if (entitiesCurrentVehicles.Count > 0) { if (entitiesCurrentVehicles.Count == 1) { currentVehicle = entitiesCurrentVehicles[0]; } else if (entitiesCurrentVehicles.Count > 1) { currentVehicle = entitiesCurrentVehicles.FirstOrDefault(v => v.IdCity == entityVehicle.IdCity); } if (currentVehicle != null) { //Comienza el proceso de actualizacion //Entity framwwork comienza a hacer seguimiento a la entidad Systimedb.Vehicles.Attach(currentVehicle); //Cambia el etado a modificado currentVehicle.Color = UtilsDataAcces.ValidateDiferentString(currentVehicle.Color, entityVehicle.Color, false, changeUpdateEntity, out changeUpdateEntity); currentVehicle.DealerVehicleModel = UtilsDataAcces.ValidateDiferentString(currentVehicle.DealerVehicleModel, entityVehicle.DealerVehicleModel, true, changeUpdateEntity, out changeUpdateEntity); currentVehicle.IdCity = (UtilsDataAcces.ValidateDiferentInt(currentVehicle.IdCity, entityVehicle.IdCity, false, changeUpdateEntity, out changeUpdateEntity)) ?? 0; currentVehicle.IdInsuranceCompany = UtilsDataAcces.ValidateDiferentInt(currentVehicle.IdInsuranceCompany, entityVehicle.IdInsuranceCompany, true, changeUpdateEntity, out changeUpdateEntity); currentVehicle.IdVehicleModel = (UtilsDataAcces.ValidateDiferentInt(currentVehicle.IdVehicleModel, entityVehicle.IdVehicleModel, false, changeUpdateEntity, out changeUpdateEntity)) ?? 0; currentVehicle.IdVehicleServiceType = (UtilsDataAcces.ValidateDiferentInt(currentVehicle.IdVehicleServiceType, entityVehicle.IdVehicleServiceType, false, changeUpdateEntity, out changeUpdateEntity)); currentVehicle.IdVehicleType = (UtilsDataAcces.ValidateDiferentInt(currentVehicle.IdVehicleType, entityVehicle.IdVehicleType, false, changeUpdateEntity, out changeUpdateEntity)); if (currentVehicle.LastMileage != entityVehicle.LastMileage && entityVehicle.LastMileage != null && currentVehicle.LastMileage < entityVehicle.LastMileage) { currentVehicle.LastMileage = entityVehicle.LastMileage; changeUpdateEntity = true; } currentVehicle.ModelYear = (UtilsDataAcces.ValidateDiferentInt(currentVehicle.ModelYear, entityVehicle.ModelYear, false, changeUpdateEntity, out changeUpdateEntity)).Value; currentVehicle.Plate = UtilsDataAcces.ValidateDiferentString(currentVehicle.Plate, entityVehicle.Plate, false, changeUpdateEntity, out changeUpdateEntity); currentVehicle.DealerCity = UtilsDataAcces.ValidateDiferentString(currentVehicle.DealerCity, entityVehicle.DealerCity, true, changeUpdateEntity, out changeUpdateEntity); currentVehicle.IdCustomerOwner = (UtilsDataAcces.ValidateDiferentDecimal(currentVehicle.IdCustomerOwner, entityVehicle.IdCustomerOwner, true, changeUpdateEntity, out changeUpdateEntity)).Value; currentVehicle.SaleGuaranteeAt = UtilsDataAcces.ValidateDiferentDateTime(currentVehicle.SaleGuaranteeAt, entityVehicle.SaleGuaranteeAt, changeUpdateEntity, out changeUpdateEntity); currentVehicle.GuaranteedSaleDistanceTraveled = UtilsDataAcces.ValidateDiferentInt(currentVehicle.GuaranteedSaleDistanceTraveled, entityVehicle.GuaranteedSaleDistanceTraveled, false, changeUpdateEntity, out changeUpdateEntity); if (changeUpdateEntity) { currentVehicle.UpdatedAt = DateTime.Now; currentVehicle.UpdatedById = userModify; Systimedb.Entry(currentVehicle).State = EntityState.Modified; Systimedb.SaveChanges(); } return(currentVehicle); } } else { entityVehicle.CreatedAt = DateTime.Now; entityVehicle.CreatedById = userModify; Systimedb.Vehicles.Add(entityVehicle); if (Systimedb.SaveChanges() > 0) { return(entityVehicle); } } } } return(null); }
/// <summary> /// Metoo encargado de grabar y actualizar una orden de trabajo en systime /// </summary> /// <param name="entityWorkOrder"></param> /// <param name="userModify"></param> /// <returns></returns> public WorkOrders SaveWorkOrder(WorkOrders entityWorkOrder, String userModify) { Boolean changeUpdateEntity = false; if (entityWorkOrder != null) { using (SystimedbEntities Systimedb = new SystimedbEntities(ConectionString)) { WorkOrders entitieCurrent = Systimedb.WorkOrders.FirstOrDefault(w => w.WorkOrderNumber == entityWorkOrder.WorkOrderNumber && w.IdDealerShop == entityWorkOrder.IdDealerShop); if (entitieCurrent != null) { entitieCurrent.AuthorizedAt = UtilsDataAcces.ValidateDiferentDateTime(entitieCurrent.AuthorizedAt, entityWorkOrder.AuthorizedAt, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.FeedBack = UtilsDataAcces.ValidateDiferentString(entitieCurrent.FeedBack, entityWorkOrder.FeedBack, false, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.HasTotalLoss = UtilsDataAcces.ValidateDiferentBoolean(entitieCurrent.HasTotalLoss, entityWorkOrder.HasTotalLoss, changeUpdateEntity, out changeUpdateEntity) ?? false; entitieCurrent.IdCurrentOperation = UtilsDataAcces.ValidateDiferentInt(entitieCurrent.IdCurrentOperation, entityWorkOrder.IdCurrentOperation, true, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.IdCurrentWorker = UtilsDataAcces.ValidateDiferentString(entitieCurrent.IdCurrentWorker, entityWorkOrder.IdCurrentWorker, true, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.IdCustomer = (UtilsDataAcces.ValidateDiferentDecimal(entitieCurrent.IdCustomer, entityWorkOrder.IdCustomer, true, changeUpdateEntity, out changeUpdateEntity)).Value; entitieCurrent.IdDealerShop = UtilsDataAcces.ValidateDiferentString(entitieCurrent.IdDealerShop, entityWorkOrder.IdDealerShop, true, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.IdErpQuote = UtilsDataAcces.ValidateDiferentInt(entitieCurrent.IdErpQuote, entityWorkOrder.IdErpQuote, true, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.IdInsuranceCompany = UtilsDataAcces.ValidateDiferentInt(entitieCurrent.IdInsuranceCompany, entityWorkOrder.IdInsuranceCompany, true, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.IdPhysicalTag = UtilsDataAcces.ValidateDiferentInt(entitieCurrent.IdPhysicalTag, entityWorkOrder.IdPhysicalTag, true, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.IdSalesRepresentative = UtilsDataAcces.ValidateDiferentString(entitieCurrent.IdSalesRepresentative, entityWorkOrder.IdSalesRepresentative, true, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.IdVinNumber = UtilsDataAcces.ValidateDiferentString(entitieCurrent.IdVinNumber, entityWorkOrder.IdVinNumber, false, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.InvoicedAt = UtilsDataAcces.ValidateDiferentDateTime(entitieCurrent.InvoicedAt, entityWorkOrder.InvoicedAt, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.Note = UtilsDataAcces.ValidateDiferentString(entitieCurrent.Note, entityWorkOrder.Note, false, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.OpenOtAt = UtilsDataAcces.ValidateDiferentDateTime(entitieCurrent.OpenOtAt, entityWorkOrder.OpenOtAt, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.PartsCompletedAt = UtilsDataAcces.ValidateDiferentDateTime(entitieCurrent.PartsCompletedAt, entityWorkOrder.PartsCompletedAt, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.PickedUpAt = UtilsDataAcces.ValidateDiferentDateTime(entitieCurrent.PickedUpAt, entityWorkOrder.PickedUpAt, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.IsInvoiced = UtilsDataAcces.ValidateDiferentBoolean(entitieCurrent.IsInvoiced, entityWorkOrder.IsInvoiced, changeUpdateEntity, out changeUpdateEntity) ?? false; entitieCurrent.PromisedAt = UtilsDataAcces.ValidateDiferentDateTime(entitieCurrent.PromisedAt, entityWorkOrder.PromisedAt, changeUpdateEntity, out changeUpdateEntity); entitieCurrent.Canceled = UtilsDataAcces.ValidateDiferentBoolean(entitieCurrent.Canceled, entityWorkOrder.Canceled, changeUpdateEntity, out changeUpdateEntity); if (changeUpdateEntity) { entitieCurrent.UpdatedAt = DateTime.Now; entitieCurrent.UpdatedById = userModify; Systimedb.SaveChanges(); } return(entitieCurrent); } else { entityWorkOrder.CreatedAt = DateTime.Now; entityWorkOrder.CreatedById = userModify; Systimedb.WorkOrders.Add(entityWorkOrder); if (Systimedb.SaveChanges() > 0) { return(entityWorkOrder); } } } } return(null); }