Example #1
0
 /// <summary>
 /// Obtiene una premezcla por producto y organizacion id
 /// </summary>
 /// <param name="premezclaInfo"></param>
 /// <returns></returns>
 internal PremezclaInfo ObtenerPorProductoIdOrganizacionId(PremezclaInfo premezclaInfo)
 {
     try
     {
         var productoBl         = new ProductoBL();
         var premezclaDal       = new PremezclaDAL();
         var premezclaDetalleBl = new PremezclaDetalleBL();
         premezclaInfo = premezclaDal.ObtenerPorProductoIdOrganizacionId(premezclaInfo);
         //Obtener detalle de premezcla
         if (premezclaInfo != null)
         {
             premezclaInfo.ListaPremezclaDetalleInfos =
                 premezclaDetalleBl.ObtenerPremezclaDetallePorPremezclaId(premezclaInfo);
             if (premezclaInfo.ListaPremezclaDetalleInfos != null)
             {
                 foreach (var premezclaInfoP in premezclaInfo.ListaPremezclaDetalleInfos)
                 {
                     premezclaInfo.Producto.Activo = EstatusEnum.Activo;
                     premezclaInfoP.Producto       = productoBl.ObtenerPorID(premezclaInfoP.Producto);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
     }
     return(premezclaInfo);
 }
        /// <summary>
        /// Hace el guardado de la premezcla
        /// </summary>
        internal void Guardar(PremezclaInfo premezclaInfo, List <PremezclaDetalleInfo> listaPremezclaDetalle, List <PremezclaDetalleInfo> listaPremezclaEliminados, int usuario)
        {
            try
            {
                var premezclaBl                = new PremezclaBL();
                var premezclaDetalleBl         = new PremezclaDetalleBL();
                var listaPremezclasModificados = new List <PremezclaDetalleInfo>();
                var listaPremezclasAgregadas   = new List <PremezclaDetalleInfo>();
                using (var transaction = new TransactionScope())
                {
                    //Si no esta guardado se crea
                    int premezclaId;
                    if (!premezclaInfo.Guardado)
                    {
                        premezclaId = premezclaBl.Crear(premezclaInfo);
                    }
                    else
                    {
                        premezclaId = premezclaInfo.PremezclaId;
                    }

                    premezclaInfo.PremezclaId = premezclaId;

                    //Guardar detalles y actualizar modificados
                    listaPremezclasModificados.AddRange(listaPremezclaDetalle.Where(detalleInfo => detalleInfo.Guardado));
                    listaPremezclasAgregadas.AddRange(listaPremezclaDetalle.Where(detalleInfo => !detalleInfo.Guardado));

                    if (listaPremezclasAgregadas.Count > 0)
                    {
                        premezclaDetalleBl.Crear(listaPremezclasAgregadas, premezclaInfo);
                    }

                    if (listaPremezclasModificados.Count > 0)
                    {
                        foreach (var listaPremezclasModificadoP in listaPremezclasModificados)
                        {
                            listaPremezclasModificadoP.UsuarioModificacionId = usuario;
                        }
                        premezclaDetalleBl.Actualizar(listaPremezclasModificados);
                    }

                    //Desactivar eliminados
                    if (listaPremezclaEliminados.Count > 0)
                    {
                        foreach (var listaPremezclaEliminado in listaPremezclaEliminados)
                        {
                            listaPremezclaEliminado.Activo = EstatusEnum.Inactivo;
                        }
                        premezclaDetalleBl.Actualizar(listaPremezclaEliminados);
                    }

                    transaction.Complete();
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }