コード例 #1
0
        /// <summary>
        /// Obtiene una entidad Almacen por su descripción
        /// </summary>
        /// <param name="almacenMovimientoInfo"></param>
        /// <returns></returns>
        public AlmacenMovimientoInfo ObtenerAlmacenMovimiento(AlmacenMovimientoInfo almacenMovimientoInfo)
        {
            try
            {
                Logger.Info();
                var almacenDAL = new AlmacenDAL();
                AlmacenMovimientoInfo result = almacenDAL.ObtenerAlmacenMovimiento(almacenMovimientoInfo);

                if (result != null)
                {
                    AlmacenMovimientoDetalleBL almacenMovimientoDetalleBl = new AlmacenMovimientoDetalleBL();
                    result.ListaAlmacenMovimientoDetalle = new List <AlmacenMovimientoDetalle> {
                        almacenMovimientoDetalleBl.ObtenerPorAlmacenMovimientoID(result.AlmacenMovimientoID)
                    };

                    AlmacenMovimientoCostoBL almacenMovimientoCostoBl = new AlmacenMovimientoCostoBL();
                    result.ListaAlmacenMovimientoCosto = almacenMovimientoCostoBl.ObtenerPorAlmacenMovimientoId(result);
                }
                return(result);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
コード例 #2
0
        /// <summary>
        /// Cargar el grid
        /// </summary>
        public void CargarGrid()
        {
            var almacenId = (int)cboAlmacenes.SelectedValue;
            var almacenPl = new AlmacenPL();
            AlmacenMovimientoInfo almacenMovimientoInfo = new AlmacenMovimientoInfo
            {
                AlmacenID        = almacenId,
                TipoMovimientoID = (int)TipoMovimiento.InventarioFisico,
                Status           = (int)EstatusInventario.Pendiente
            };

            IList <AlmacenMovimientoInfo> resultadoGrid = almacenPl.ObtenerListaAlmacenMovimiento(almacenMovimientoInfo, (int)EstatusEnum.Activo);

            if (resultadoGrid.Count > 0)
            {
                gridDatos.ItemsSource = resultadoGrid;
                btnDetalle.IsEnabled  = true;
            }
            else
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  Properties.Resources.AutorizarAjuste_NoMovimientosDiferencia,
                                  MessageBoxButton.OK, MessageImage.Warning);
                LimpiarCaptura();
            }
        }
コード例 #3
0
 /// <summary>
 /// obtiene el almacen movimiento
 /// </summary>
 /// <param name="almacenMovimientoInfo"></param>
 /// <param name="activo"></param>
 /// <returns></returns>
 public IList <AlmacenMovimientoInfo> ObtenerListaAlmacenMovimiento(AlmacenMovimientoInfo almacenMovimientoInfo, int activo)
 {
     try
     {
         Logger.Info();
         var almacenDAL = new AlmacenDAL();
         IList <AlmacenMovimientoInfo> resultado = new List <AlmacenMovimientoInfo>();
         IList <AlmacenMovimientoInfo> result    = almacenDAL.ObtenerListaAlmacenMovimiento(almacenMovimientoInfo, activo);
         if (result != null)
         {
             foreach (var movimientoInfo in result)
             {
                 if (movimientoInfo.Status == (int)EstatusInventario.Pendiente)
                 {
                     resultado.Add(movimientoInfo);
                 }
             }
         }
         return(resultado);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #4
0
        /// <summary>
        /// Obtiene un Almacen por su Id
        /// </summary>
        /// <returns> </returns>
        public EstatusInfo ObtenerEstatusInfo(AlmacenMovimientoInfo almacenMovimientoInfo)
        {
            EstatusInfo info = null;

            try
            {
                Logger.Info();
                var estatusBL        = new EstatusBL();
                var resultadoEstatus = estatusBL.ObtenerEstatusTipoEstatus((int)TipoEstatus.Inventario);

                if (resultadoEstatus != null)
                {
                    foreach (var estatus in resultadoEstatus.Where(estatus => estatus.EstatusId == almacenMovimientoInfo.Status))
                    {
                        info = new EstatusInfo
                        {
                            EstatusId   = estatus.EstatusId,
                            Descripcion = estatus.Descripcion
                        };
                    }
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
コード例 #5
0
 /// <summary>
 /// Crea un registro almacen movimiento
 /// </summary>
 /// <returns></returns>
 internal static Dictionary <string, object> ObtenerParametrosCrear(AlmacenMovimientoInfo almacenMovimientoInfo)
 {
     try
     {
         //Validar si la observacion es nula
         almacenMovimientoInfo.Observaciones = almacenMovimientoInfo.Observaciones ?? "";
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@AlmacenID", almacenMovimientoInfo.AlmacenID },
             { "@TipoMovimientoID", almacenMovimientoInfo.TipoMovimientoID },
             { "@ProveedorID", almacenMovimientoInfo.ProveedorId },
             { "@Status", almacenMovimientoInfo.Status },
             { "@UsuarioCreacionID", almacenMovimientoInfo.UsuarioCreacionID },
             { "@Observaciones", almacenMovimientoInfo.Observaciones },
             { "@EsEnvioAlimento", almacenMovimientoInfo.EsEnvioAlimento ? 1 : 0 },
             { "@OrganizacionOrigenID", almacenMovimientoInfo.OrganizacionID }
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #6
0
        /// <summary>
        /// Obtiene una lista de entrada premezcla por movimiento de entrada
        /// </summary>
        /// <param name="entradaPremezclaInfo"></param>
        /// <returns></returns>
        internal List <EntradaPremezclaInfo> ObtenerPorMovimientoEntrada(AlmacenMovimientoInfo almacenMovimiento)
        {
            List <EntradaPremezclaInfo> listaEntradaPremezcla = null;

            try
            {
                Dictionary <string, object> parameters =
                    AuxEntradaPremezclaDAL.ObtenerParametrosObtenerPorMovimientoEntrada(almacenMovimiento);
                DataSet ds = Retrieve("EntradaProducto_ObtenerFolioPorPaginaEstatus", parameters);
                if (ValidateDataSet(ds))
                {
                    listaEntradaPremezcla = MapEntradaPremezclaDAL.ObtenerPorMovimientoEntrada(ds);
                }
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (DataException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(listaEntradaPremezcla);
        }
コード例 #7
0
        /// <summary>
        /// Obtiene el Almacen Movimiento por su Detalle
        /// </summary>
        /// <param name="almancenMovimientosDetalle"></param>
        /// <returns></returns>
        internal AlmacenMovimientoInfo ObtenerMovimientoPorClaveDetalle(List <AlmacenMovimientoDetalle> almancenMovimientosDetalle)
        {
            AlmacenMovimientoInfo almacenMovimiento = null;

            try
            {
                Dictionary <string, object> parameters =
                    AuxAlmacenMovimientoDAL.ObtenerParametrosPorClaveDetalle(almancenMovimientosDetalle);
                DataSet ds = Retrieve("AlmacenMovimiento_ObtenerMovimientoXML", parameters);
                if (ValidateDataSet(ds))
                {
                    almacenMovimiento = MapAlmacenMovimientoDAL.ObtenerMovimientoPorClaveDetalle(ds);
                }
            }
            catch (SqlException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (DataException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(almacenMovimiento);
        }
コード例 #8
0
 /// <summary>
 /// Crear un registro en almacen movimiento
 /// </summary>
 /// <returns></returns>
 internal long Crear(AlmacenMovimientoInfo almacenMovimientoInfo)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxAlmacenMovimientoDAL.ObtenerParametrosCrear(almacenMovimientoInfo);
         long result = Create("AlmacenMovimiento_Crear", parameters);
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #9
0
        /// <summary>
        /// Obtiene un flujo de datos
        /// para la generacion de la reimpresion
        /// de la poliza de Salida de Traspaso
        /// </summary>
        /// <param name="produccionFormula"></param>
        /// <param name="polizaClave"></param>
        /// <returns></returns>
        private MemoryStream ReimpresionPolizaProduccionAlimento(ProduccionFormulaInfo produccionFormula, TipoPolizaInfo polizaClave)
        {
            var polizaBL = new PolizaBL();
            IList <PolizaInfo> polizasProduccionAlimento = polizaBL.ObtenerPoliza(TipoPoliza.ProduccionAlimento,
                                                                                  produccionFormula.Organizacion.OrganizacionID,
                                                                                  produccionFormula.FechaProduccion,
                                                                                  produccionFormula.FolioFormula.ToString(CultureInfo.InvariantCulture),
                                                                                  polizaClave.ClavePoliza, 1);
            MemoryStream stream = null;

            if (polizasProduccionAlimento != null)
            {
                var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.ProduccionAlimento);
                var produccionFormulaBL = new ProduccionFormulaBL();
                using (var almacenDAL = new AlmacenDAL())
                {
                    var almacenMovimientoBL          = new AlmacenMovimientoBL();
                    ProduccionFormulaInfo produccion = produccionFormulaBL.ObtenerPorIDCompleto(produccionFormula.ProduccionFormulaId);


                    if (produccion != null)
                    {
                        AlmacenInfo almacenPlantaAlimento =
                            almacenDAL.ObtenerAlmacenOrganizacionTipo(produccionFormula.Organizacion.OrganizacionID, TipoAlmacenEnum.PlantaDeAlimentos);

                        AlmacenMovimientoInfo almacenMovimiento =
                            almacenMovimientoBL.ObtenerPorIDCompleto(produccion.AlmacenMovimientoSalidaID);

                        var produccionFormulaDetalles = new List <ProduccionFormulaDetalleInfo>();
                        if (almacenMovimiento != null)
                        {
                            foreach (var detalle in produccion.ProduccionFormulaDetalle)
                            {
                                var movimiento = almacenMovimiento.ListaAlmacenMovimientoDetalle.FirstOrDefault(
                                    alm => alm.Producto.ProductoId == detalle.Producto.ProductoId &&
                                    alm.AlmacenInventarioLoteId == detalle.AlmacenInventarioLoteID);

                                if (movimiento == null)
                                {
                                    continue;
                                }
                                detalle.CantidadProducto = movimiento.Cantidad;
                                detalle.PrecioPromedio   = movimiento.Precio;
                                produccionFormulaDetalles.Add(detalle);
                            }
                        }

                        if (almacenPlantaAlimento == null)
                        {
                            return(null);
                        }
                        produccion.ProduccionFormulaDetalle = produccionFormulaDetalles;
                        produccion.Almacen        = almacenPlantaAlimento;
                        polizasProduccionAlimento = poliza.GeneraPoliza(produccion);
                        stream = poliza.ImprimePoliza(produccion, polizasProduccionAlimento);
                    }
                }
            }
            return(stream);
        }
コード例 #10
0
 /// <summary>
 /// Termina la salida del producto
 /// </summary>
 /// <param name="salida"></param>
 /// <param name="movimiento"></param>
 /// <returns></returns>
 internal int TerminarSalidaProducto(SalidaProductoInfo salida, AlmacenMovimientoInfo movimiento)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters =
             AuxSalidaProductoDAL.ObtenerParametrosTerminarSalida(salida, movimiento);
         int result = Create("SalidaProducto_TerminarSalidaProducto", parameters);
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #11
0
        /// <summary>
        /// Obtiene un flujo de datos
        /// para la generacion de la reimpresion
        /// de la poliza de Salida de Traspaso
        /// </summary>
        /// <param name="folioSolicitud"></param>
        /// <param name="polizaClave"></param>
        /// <returns></returns>
        private MemoryStream ReimpresionPolizaSalidaConsumo(FolioSolicitudInfo folioSolicitud, TipoPolizaInfo polizaClave)
        {
            var polizaBL = new PolizaBL();
            IList <PolizaInfo> polizasSalidaConsumo = polizaBL.ObtenerPoliza(TipoPoliza.SalidaConsumo,
                                                                             folioSolicitud.OrganizacionID,
                                                                             folioSolicitud.FechaEntrega.HasValue ? folioSolicitud.FechaEntrega.Value : DateTime.MinValue,
                                                                             folioSolicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture),
                                                                             polizaClave.ClavePoliza, 1);
            MemoryStream stream = null;

            if (polizasSalidaConsumo != null)
            {
                var poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaConsumo);
                var solicitudProductoDAL = new SolicitudProductoDAL();
                using (var almacenDAL = new AlmacenDAL())
                {
                    var almacenMovimientoBL         = new AlmacenMovimientoBL();
                    SolicitudProductoInfo solicitud = solicitudProductoDAL.ObtenerPorID(folioSolicitud.FolioID);


                    if (solicitud != null)
                    {
                        AlmacenInfo almacenGeneral =
                            almacenDAL.ObtenerAlmacenGeneralOrganizacion(folioSolicitud.OrganizacionID);

                        AlmacenMovimientoInfo almacenMovimiento =
                            almacenMovimientoBL.ObtenerPorIDCompleto(solicitud.AlmacenMovimientoID.HasValue
                                                                 ? solicitud.AlmacenMovimientoID.Value
                                                                 : 0);

                        if (almacenMovimiento != null)
                        {
                            foreach (var detalle in solicitud.Detalle)
                            {
                                var movimiento = almacenMovimiento.ListaAlmacenMovimientoDetalle.FirstOrDefault(
                                    alm => alm.Producto.ProductoId == detalle.Producto.ProductoId);

                                if (movimiento == null)
                                {
                                    continue;
                                }
                                detalle.PrecioPromedio = movimiento.Precio;
                            }
                        }

                        if (almacenGeneral == null)
                        {
                            return(null);
                        }
                        solicitud.AlmacenGeneralID = almacenGeneral.AlmacenID;
                        polizasSalidaConsumo       = poliza.GeneraPoliza(solicitud);
                        stream = poliza.ImprimePoliza(solicitud, polizasSalidaConsumo);
                    }
                }
            }
            return(stream);
        }
コード例 #12
0
        /// <summary>
        /// Llena datos seccion ajuste de inventario e historial
        /// </summary>
        private void LlenarDatosAlmacenMovimiento()
        {
            var usuarioPL             = new UsuarioPL();
            var almacenMovimientoInfo = new AlmacenMovimientoInfo
            {
                AlmacenID           = almacenID,
                FolioMovimiento     = folioMovimiento,
                AlmacenMovimientoID = almacenMovimientoID
            };
            var almacenPL         = new AlmacenPL();
            var almacenMovimiento = almacenPL.ObtenerAlmacenMovimiento(almacenMovimientoInfo);

            if (almacenMovimiento == null)
            {
                return;
            }
            //Informacion almacen
            txtFolioInventarioFisico.Text = Convert.ToString(almacenMovimiento.FolioMovimiento);

            var tipoMovimiento = new TipoMovimientoPL();
            var resultado      = tipoMovimiento.ObtenerPorID(almacenMovimiento.TipoMovimientoID);

            if (resultado != null)
            {
                txtTipoMovimiento.Text = resultado.Descripcion;
            }

            //Fecha actual
            var fechaActual = DateTime.Now;

            txtFecha.Text = fechaActual.ToString("dd'/'MM'/'yyyy' 'hh':'mm  tt", CultureInfo.InvariantCulture);
            //Obtener descripcion de estatus
            var ajusteDeInventarioPL = new AjusteDeInventarioPL();
            var estatusInfo          = ajusteDeInventarioPL.ObtenerEstatusInfo(almacenMovimiento);

            if (estatusInfo != null)
            {
                txtEstado.Text = estatusInfo.Descripcion;
            }

            //Usuarios creacion y modificacion
            var usuario = usuarioPL.ObtenerPorID(almacenMovimiento.UsuarioCreacionID);

            if (usuario != null)
            {
                txtCreadoPor.Text = usuario.Nombre;
            }

            txtModificadoPor.Text       = nombreUsuario;
            txtUltimaActualizacion.Text = fechaActual.ToString("dd'/'MM'/'yyyy' 'hh':'mm  tt", CultureInfo.InvariantCulture);

            //Fecha creacion y modificacion
            //var fechaVal = new DateTime(1492, 10, 12);
            var fechaCreacion = almacenMovimiento.FechaCreacion;

            txtFechaCreacion.Text = fechaCreacion.ToString("dd'/'MM'/'yyyy' 'hh':'mm  tt", CultureInfo.InvariantCulture);
        }
コード例 #13
0
 public AjusteDeInventario(AlmacenMovimientoInfo seleccion)
 {
     InitializeComponent();
     organizacionID      = Extensor.ValorEntero(Application.Current.Properties["OrganizacionID"].ToString());
     usuarioID           = AuxConfiguracion.ObtenerUsuarioLogueado();
     nombreUsuario       = Application.Current.Properties["Nombre"].ToString();
     almacenID           = seleccion.AlmacenID;
     folioMovimiento     = seleccion.FolioMovimiento;
     almacenMovimientoID = seleccion.AlmacenMovimientoID;
 }
コード例 #14
0
 /// <summary>
 /// Metodo que llena grid de diferencias de inventario
 /// </summary>
 private void LlenarGridDiferencias()
 {
     try
     {
         var ajusteDeInventarioPL  = new AjusteDeInventarioPL();
         var almacenMovimientoInfo = new AlmacenMovimientoInfo
         {
             AlmacenID           = almacenID,
             AlmacenMovimientoID = almacenMovimientoID
         };
         listadoProductos = ajusteDeInventarioPL.ObtenerDiferenciaInventarioFisicoTeorico(almacenMovimientoInfo, organizacionID);
         if (listadoProductos != null)
         {
             listadoProductos = FiltrarProductosAlmacen(listadoProductos);
             if (listadoProductos.Count > 0)
             {
                 gridDatos.ItemsSource = listadoProductos;
             }
             else
             {
                 txtObservaciones.Focus();
                 SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                   Properties.Resources.AjusteDeInventario_MensajeNoDiferencias,
                                   MessageBoxButton.OK, MessageImage.Warning);
             }
         }
         else
         {
             txtObservaciones.Focus();
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                               Properties.Resources.AjusteDeInventario_MensajeNoDiferencias,
                               MessageBoxButton.OK, MessageImage.Warning);
         }
     }
     catch (ExcepcionGenerica ex)
     {
         Logger.Error(ex);
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #15
0
        /// <summary>
        /// Genera los registros de los movimientos para entrada y/o salida del Almacen
        /// </summary>
        private void ArmarAlmacenMovimientoEntradaSalidaAlmacen(List <AlmacenMovimientoInfo> listaMovimientosFinal,
                                                                CierreDiaInventarioPAInfo cierreDiaInventarioPA,
                                                                IEnumerable <EstatusInfo> listaEstatusInventario,
                                                                bool esEntrada)
        {
            EstatusInfo estatusAutorizado =
                listaEstatusInventario.FirstOrDefault(
                    esta => esta.DescripcionCorta.Trim().Equals(ConstantesBL.MovimientoAutorizado.Trim()));

            if (estatusAutorizado == null)
            {
                return;
            }
            var movimiento = new AlmacenMovimientoInfo
            {
                AlmacenID        = cierreDiaInventarioPA.AlmacenID,
                TipoMovimientoID =
                    esEntrada
                            ? TipoMovimiento.EntradaPorAjuste.GetHashCode()
                            : TipoMovimiento.SalidaPorAjuste.GetHashCode(),
                FolioMovimiento = cierreDiaInventarioPA.FolioMovimiento,
                Observaciones   = cierreDiaInventarioPA.Observaciones,
                //FechaMovimiento = DateTime.Now,
                Status            = estatusAutorizado.EstatusId,
                UsuarioCreacionID = cierreDiaInventarioPA.UsuarioCreacionID
            };

            var movimientoDetalles = (from detalle in cierreDiaInventarioPA.ListaCierreDiaInventarioPADetalle
                                      select new AlmacenMovimientoDetalle
            {
                AlmacenInventarioLoteId = detalle.AlmacenInventarioLoteID,
                ProductoID = detalle.ProductoID,
                Precio = detalle.CostoUnitario,
                Cantidad = Math.Abs(detalle.InventarioFisico - detalle.InventarioTeorico),
                Piezas = Math.Abs((detalle.PiezasFisicas - detalle.PiezasTeoricas)),
                Importe =
                    Math.Round(
                        Convert.ToDecimal(Math.Abs(detalle.InventarioFisico - detalle.InventarioTeorico)) *
                        detalle.CostoUnitario, 2),
                UsuarioCreacionID = cierreDiaInventarioPA.UsuarioCreacionID
            }).ToList();

            movimiento.ListaAlmacenMovimientoDetalle = movimientoDetalles;
            listaMovimientosFinal.Add(movimiento);
        }
コード例 #16
0
 /// <summary>
 /// Metodo para obtener la lista de movimientos de la entrada
 /// </summary>
 /// <param name="almacenMovimientoInfo"></param>
 /// <returns></returns>
 internal List <EntradaPremezclaInfo> ObtenerPorMovimientoEntrada(AlmacenMovimientoInfo almacenMovimiento)
 {
     try
     {
         Logger.Info();
         var entradaPremezclaDAL = new EntradaPremezclaDAL();
         return(entradaPremezclaDAL.ObtenerPorMovimientoEntrada(almacenMovimiento));
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #17
0
 /// <summary>
 /// Actualizar estatus del movimiento
 /// </summary>
 /// <param name="almacenMovimientoInfo"></param>
 /// <returns></returns>
 internal void ActualizarEstatus(AlmacenMovimientoInfo almacenMovimientoInfo)
 {
     try
     {
         Logger.Info();
         var almacenMovimientoDal = new AlmacenMovimientoDAL();
         almacenMovimientoDal.ActualizarEstatus(almacenMovimientoInfo);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #18
0
 /// <summary>
 /// Metodo que actualiza un registro en AlmacenMovimiento
 /// </summary>
 /// <param name="almacenMovimientoInfo"></param>
 public void ActualizarAlmacenMovimiento(AlmacenMovimientoInfo almacenMovimientoInfo)
 {
     try
     {
         Logger.Info();
         var almacenDAL = new AlmacenDAL();
         almacenDAL.ActualizarAlmacenMovimiento(almacenMovimientoInfo);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #19
0
 /// <summary>
 /// Crear un registro en almacen movimiento
 /// </summary>
 /// <param name="almacenMovimientoInfo"></param>
 /// <returns></returns>
 internal long Crear(AlmacenMovimientoInfo almacenMovimientoInfo)
 {
     try
     {
         Logger.Info();
         var  almacenMovimientoDal = new AlmacenMovimientoDAL();
         long result = almacenMovimientoDal.Crear(almacenMovimientoInfo);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #20
0
 /// <summary>
 /// Obtiene un listado por almacen movimiento id
 /// </summary>
 /// <param name="almacenMovimientoInfo"></param>
 /// <returns></returns>
 internal List <AlmacenMovimientoCostoInfo> ObtenerPorAlmacenMovimientoId(AlmacenMovimientoInfo almacenMovimientoInfo)
 {
     try
     {
         Logger.Info();
         var almacenMovimientoCostoDAL            = new AlmacenMovimientoCostoDAL();
         List <AlmacenMovimientoCostoInfo> result = almacenMovimientoCostoDAL.ObtenerPorAlmacenMovimientoId(almacenMovimientoInfo);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #21
0
 /// <summary>
 /// Obtiene una entidad por su descripción
 /// </summary>
 /// <param name="almacenMovimientoInfo"></param>
 /// <returns></returns>
 public AlmacenMovimientoInfo ObtenerAlmacenMovimiento(AlmacenMovimientoInfo almacenMovimientoInfo)
 {
     try
     {
         Logger.Info();
         var almacenBL = new AlmacenBL();
         AlmacenMovimientoInfo result = almacenBL.ObtenerAlmacenMovimiento(almacenMovimientoInfo);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #22
0
 /// <summary>
 /// Guarda el almacen movimiento
 /// </summary>
 /// <param name="almacenMovimientoNuevo"></param>
 /// <returns></returns>
 internal AlmacenMovimientoInfo GuardarAlmacenMovimiento(AlmacenMovimientoInfo almacenMovimientoNuevo)
 {
     try
     {
         Logger.Info();
         var almacenDAL = new AlmacenDAL();
         AlmacenMovimientoInfo resultado = almacenDAL.GuardarAlmacenMovimiento(almacenMovimientoNuevo);
         return(resultado);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
コード例 #23
0
        /// <summary>
        /// Genera los registro que quedarán pendientes de autorizar
        /// </summary>
        private void ArmarAlmacenMovimientoInventarioFisicoPendiente(List <AlmacenMovimientoInfo> listaMovimientosFinal,
                                                                     CierreDiaInventarioPAInfo cierreDiaInventarioPA,
                                                                     IEnumerable <EstatusInfo> listaEstatusInventario)
        {
            EstatusInfo estatusPendiente =
                listaEstatusInventario.FirstOrDefault(
                    esta => esta.DescripcionCorta.Trim().Equals(ConstantesBL.MovimientoPendiente.Trim()));

            if (estatusPendiente == null)
            {
                return;
            }
            var movimiento = new AlmacenMovimientoInfo
            {
                AlmacenID        = cierreDiaInventarioPA.AlmacenID,
                TipoMovimientoID = TipoMovimiento.InventarioFisico.GetHashCode(),
                FolioMovimiento  = cierreDiaInventarioPA.FolioMovimiento,
                Observaciones    = cierreDiaInventarioPA.Observaciones,
                //FechaMovimiento = DateTime.Now,
                Status            = estatusPendiente.EstatusId,
                UsuarioCreacionID = cierreDiaInventarioPA.UsuarioCreacionID
            };

            var movimientoDetalles = (from detalle in cierreDiaInventarioPA.ListaCierreDiaInventarioPADetalle
                                      select new AlmacenMovimientoDetalle
            {
                AlmacenInventarioLoteId = detalle.AlmacenInventarioLoteID,
                ProductoID = detalle.ProductoID,
                Precio = detalle.CostoUnitario,
                Cantidad = detalle.InventarioFisico,
                Piezas = detalle.PiezasFisicas,
                Importe =
                    Math.Round(
                        Convert.ToDecimal(detalle.InventarioFisico) * detalle.CostoUnitario,
                        2),
                UsuarioCreacionID = cierreDiaInventarioPA.UsuarioCreacionID
            }).ToList();

            movimiento.ListaAlmacenMovimientoDetalle = movimientoDetalles;
            listaMovimientosFinal.Add(movimiento);
        }
コード例 #24
0
        /// <summary>
        /// Obtener costos por almacen movimiento id
        /// </summary>
        /// <param name="almacenMovimientoInfo"></param>
        /// <returns></returns>
        public List <AlmacenMovimientoCostoInfo> ObtenerPorAlmacenMovimientoId(AlmacenMovimientoInfo almacenMovimientoInfo)
        {
            List <AlmacenMovimientoCostoInfo> info;

            try
            {
                Logger.Info();
                var almacenMovimientoCostoBl = new AlmacenMovimientoCostoBL();
                info = almacenMovimientoCostoBl.ObtenerPorAlmacenMovimientoId(almacenMovimientoInfo);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
コード例 #25
0
        /// <summary>
        /// Obtiene un listado de almacen movimiento costo
        /// </summary>
        /// <param name="almacenMovimientoId"></param>
        /// <returns></returns>
        internal List <AlmacenMovimientoCostoInfo> ObtenerPorAlmacenMovimientoId(AlmacenMovimientoInfo almacenMovimientoId)
        {
            List <AlmacenMovimientoCostoInfo> almacenMovimientoCostoInfo = null;

            try
            {
                Dictionary <string, object> parametros = AuxAlmacenMovimientoCostoDAL.ObtenerParametrosObtenerPorAlmacenMovimientoId(almacenMovimientoId);
                DataSet ds = Retrieve("AlmacenMovimientoCosto_ObtenerPorAlmacenMovimientoId", parametros);
                if (ValidateDataSet(ds))
                {
                    almacenMovimientoCostoInfo = MapAlmacenMovimientoCostoDAL.ObtenerPorAlmacenMovimientoId(ds);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            return(almacenMovimientoCostoInfo);
        }
コード例 #26
0
        /// <summary>
        /// Obtiene el Status de AlmacenMovimiento
        /// </summary>
        /// <returns> </returns>
        public EstatusInfo ObtenerEstatusInfo(AlmacenMovimientoInfo almacenMovimientoInfo)
        {
            EstatusInfo info;

            try
            {
                Logger.Info();
                var ajusteDeInventarioBL = new AjusteDeInventarioBL();
                info = ajusteDeInventarioBL.ObtenerEstatusInfo(almacenMovimientoInfo);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
コード例 #27
0
        /// <summary>
        /// Validar que no queden ajustes pendientes por aplicar para el almacen(Diferencias de inventario)
        /// </summary>
        /// <param name="almacenMovimientoInfo"></param>
        /// <returns></returns>
        public bool ExistenAjustesPendientesParaAlmacen(AlmacenMovimientoInfo almacenMovimientoInfo)
        {
            bool info;

            try
            {
                Logger.Info();
                var almacenBL = new AlmacenBL();
                info = almacenBL.ExistenAjustesPendientesParaAlmacen(almacenMovimientoInfo);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
コード例 #28
0
        private long GuardarMovimientos(RecepcionProductoInfo recepcionProducto)
        {
            long almacenMovimientoId = 0;

            try
            {
                var almacenMovimientoBl = new AlmacenMovimientoBL();
                AlmacenMovimientoInfo almacenMovimiento = new AlmacenMovimientoInfo();
                almacenMovimiento.AlmacenID         = recepcionProducto.Almacen.AlmacenID;
                almacenMovimiento.TipoMovimientoID  = (int)TipoMovimiento.RecepcionProducto;
                almacenMovimiento.Observaciones     = recepcionProducto.Observaciones;
                almacenMovimiento.Status            = (int)EstatusInventario.Aplicado;
                almacenMovimiento.ProveedorId       = recepcionProducto.Proveedor.ProveedorID;
                almacenMovimiento.UsuarioCreacionID = recepcionProducto.UsuarioCreacion.UsuarioID;

                almacenMovimientoId = almacenMovimientoBl.Crear(almacenMovimiento);

                if (almacenMovimientoId > 0)
                {
                    var almacenMovimientoDetalleBl = new AlmacenMovimientoDetalleBL();
                    foreach (var recepcionProductoDetalle in recepcionProducto.ListaRecepcionProductoDetalle)
                    {
                        var almacenMovimientoDetalle = new AlmacenMovimientoDetalle();
                        almacenMovimientoDetalle.AlmacenMovimientoID = almacenMovimientoId;
                        almacenMovimientoDetalle.ProductoID          = recepcionProductoDetalle.Producto.ProductoId;
                        almacenMovimientoDetalle.Importe             = recepcionProductoDetalle.Importe;
                        almacenMovimientoDetalle.Cantidad            = recepcionProductoDetalle.Cantidad;
                        almacenMovimientoDetalle.Precio = almacenMovimientoDetalle.Importe /
                                                          almacenMovimientoDetalle.Cantidad;
                        almacenMovimientoDetalle.UsuarioCreacionID = recepcionProducto.UsuarioCreacion.UsuarioID;
                        almacenMovimientoDetalleBl.Crear(almacenMovimientoDetalle);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(almacenMovimientoId);
        }
コード例 #29
0
        /// <summary>
        /// Funcion para almacenar los tratamientos en almacenMovimiento y Descontarlos del inventario
        /// </summary>
        /// <param name="listaTratamientos"></param>
        /// <param name="almacenMovimientoInfo"></param>
        public int GuardarDescontarTratamientos(List <TratamientoInfo> listaTratamientos,
                                                AlmacenMovimientoInfo almacenMovimientoInfo)
        {
            int info;

            try
            {
                Logger.Info();
                var almacenBL = new AlmacenBL();
                info = almacenBL.GuardarDescontarTratamientos(listaTratamientos, almacenMovimientoInfo);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
コード例 #30
0
        /// <summary>
        /// Cargar ajuste inventario
        /// </summary>
        public void CargarajusteDeInventarioLog()
        {
            try
            {
                AlmacenMovimientoInfo seleccion =
                    (AlmacenMovimientoInfo)gridDatos.SelectedItem;


                var ajusteDeInventarioLog = new AjusteDeInventario(seleccion)
                {
                    Left  = (ActualWidth - Width) / 2,
                    Top   = ((ActualHeight - Height) / 2) + 132,
                    Owner = Application.Current.Windows[ConstantesVista.WindowPrincipal]
                };
                ajusteDeInventarioLog.ShowDialog();
                CargarGrid();
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }