Exemplo n.º 1
0
 /// <summary>
 ///  Obtiene parametros para actualizar
 /// </summary>
 /// <param name="info">Valores de la entidad</param>
 /// <returns></returns>
 public static Dictionary <string, object> ObtenerParametrosActualizar(SolicitudProductoInfo info)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@SolicitudProductoID", info.SolicitudProductoID },
             { "@OrganizacionID", info.OrganizacionID },
             { "@FolioSolicitud", info.FolioSolicitud },
             { "@FechaSolicitud", info.FechaSolicitud },
             { "@UsuarioIDSolicita", info.UsuarioIDSolicita },
             { "@EstatusID", info.EstatusID },
             { "@UsuarioIDAutoriza", info.UsuarioIDAutoriza },
             { "@FechaAutorizado", info.FechaAutorizado },
             { "@UsuarioIDEntrega", info.UsuarioIDEntrega },
             { "@FechaEntrega", info.FechaEntrega },
             { "@CentroCostoID", info.CentroCostoID },
             { "@AlmacenID", info.AlmacenID },
             { "@AlmacenMovimientoID", info.AlmacenMovimientoID },
             { "@ObservacionUsuarioEntrega", info.ObservacionUsuarioEntrega },
             { "@ObservacionUsuarioAutoriza", info.ObservacionUsuarioAutoriza },
             { "@Activo", info.Activo },
             { "@UsuarioModificacionID", info.UsuarioModificacionID },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Obtiene un registro de SolicitudProducto
 /// </summary>
 /// <param name="solicitudProductoID">Identificador de la SolicitudProducto</param>
 /// <returns></returns>
 public SolicitudProductoInfo ObtenerPorID(int solicitudProductoID)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxSolicitudProductoDAL.ObtenerParametrosPorID(solicitudProductoID);
         DataSet ds = Retrieve("SolicitudProducto_ObtenerPorID", parameters);
         SolicitudProductoInfo result = null;
         if (ValidateDataSet(ds))
         {
             result = MapSolicitudProductoDAL.ObtenerPorID(ds);
         }
         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);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Metodo para Crear un registro de SolicitudProducto
 /// </summary>
 /// <param name="info">Valores de la entidad que será creada</param>
 public int Crear(SolicitudProductoInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxSolicitudProductoDAL.ObtenerParametrosCrear(info);
         int result = Create("SolicitudProducto_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);
     }
 }
Exemplo n.º 4
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);
        }
        /// <summary>
        /// Metodo que valida los datos para guardar
        /// </summary>
        /// <returns></returns>
        private bool ValidaGuardar()
        {
            bool   resultado = true;
            string mensaje   = string.Empty;

            try
            {
                SolicitudProductoInfo solicitud = Contexto;
                int selecionados = Contexto.Detalle.Count(e => e.Entregado && e.Editar);

                if (string.IsNullOrWhiteSpace(Contexto.ObservacionUsuarioEntrega))
                {
                    mensaje = Properties.Resources.EntregarProductoAlmacen_MsgObservacionesRequerida;
                }
                else if (selecionados > 0)
                {
                    var disponibilidad = ValidaDisponibilidad(solicitud);
                    solicitud.Detalle.ForEach(se =>
                    {
                        bool entregado = (se.Entregado);
                        if ((se.Activo == EstatusEnum.Activo && entregado) && se.Editar)
                        {
                            var registro =
                                disponibilidad.FirstOrDefault(
                                    d => d.ProductoID == se.ProductoID);
                            if (registro != null && !registro.IsDisponible)
                            {
                                mensaje +=
                                    string.Format(
                                        Properties.Resources.
                                        EntregarProductoAlmacen_MsgSinDisponibilidad,
                                        se.Producto.Descripcion);
                            }
                        }
                    });
                }
                else
                {
                    mensaje = Properties.Resources.EntregarProductoAlmacen_MsgSeleccioneUnRegistro;
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                resultado = false;
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(resultado);
        }
        /// <summary>
        /// Obtiene una solicitud de productos por su folio de solicitud.
        /// </summary>
        /// <param name="solicitudId"></param>
        /// <returns></returns>
        private SolicitudProductoInfo ObtenerSolicitudPorId(int solicitudId)
        {
            SolicitudProductoInfo solicitud =
                solicitudProductoBL.ObtenerPorID(new SolicitudProductoInfo {
                SolicitudProductoID = solicitudId
            });

            solicitud.Solicitud                = InicializaContextoSolicitud();
            solicitud.Solicitud.FolioID        = solicitud.SolicitudProductoID;
            solicitud.Solicitud.FolioSolicitud = solicitud.FolioSolicitud;
            solicitud.Solicitud.Descripcion    = string.Format("{0}", solicitud.FolioSolicitud);
            return(solicitud);
        }
Exemplo n.º 7
0
 /// <summary>
 ///  Método que obtiene un registro
 /// </summary>
 /// <param name="ds"></param>
 /// <returns></returns>
 public static SolicitudProductoInfo ObtenerPorID(DataSet ds)
 {
     try
     {
         Logger.Info();
         DataTable             dt      = ds.Tables[ConstantesDAL.DtDatos];
         SolicitudProductoInfo entidad =
             (from info in dt.AsEnumerable()
              select
              new SolicitudProductoInfo
         {
             SolicitudProductoID = info.Field <int>("SolicitudProductoID"),
             Organizacion = new OrganizacionInfo {
                 OrganizacionID = info.Field <int>("OrganizacionID"), Descripcion = info.Field <string>("Organizacion")
             },
             FolioSolicitud = info.Field <int>("FolioSolicitud"),
             FechaSolicitud = info.Field <DateTime>("FechaSolicitud"),
             UsuarioSolicita = new UsuarioInfo {
                 UsuarioID = info.Field <int>("UsuarioID"),
             },
             Estatus = new EstatusInfo {
                 EstatusId = info.Field <int>("EstatusID"), Descripcion = info.Field <string>("Estatus")
             },
             UsuarioAutoriza = new UsuarioInfo {
                 UsuarioID = info.Field <int>("UsuarioID")
             },
             FechaAutorizado = info.Field <DateTime>("FechaAutorizado"),
             UsuarioEntrega = new UsuarioInfo {
                 UsuarioID = info.Field <int>("UsuarioID")
             },
             FechaEntrega = info.Field <DateTime>("FechaEntrega"),
             CentroCosto = new CentroCostoInfo {
                 CentroCostoID = info.Field <int>("CentroCostoID"), Descripcion = info.Field <string>("CentroCosto")
             },
             Almacen = new AlmacenInfo {
                 AlmacenID = info.Field <int>("AlmacenID"), Descripcion = info.Field <string>("Almacen")
             },
             AlmacenMovimientoID = info.Field <long?>("AlmacenMovimientoID"),
             ObservacionUsuarioEntrega = info.Field <string>("ObservacionUsuarioEntrega"),
             ObservacionUsuarioAutoriza = info.Field <string>("ObservacionUsuarioAutoriza"),
             Activo = info.Field <bool>("Activo").BoolAEnum(),
         }).First();
         return(entidad);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        /// <summary>
        /// Método para cancelar
        /// </summary>
        private void Guardar()
        {
            bool guardar = ValidaGuardar();

            if (guardar)
            {
                try
                {
                    SolicitudProductoInfo solicitudGuardar = Contexto;
                    solicitudGuardar.UsuarioIDEntrega      = usuario.UsuarioID;
                    solicitudGuardar.FechaEntrega          = DateTime.Now;
                    solicitudGuardar.UsuarioModificacionID = usuario.UsuarioID;
                    //solicitudGuardar.AlmacenID = almacen.AlmacenID;
                    solicitudGuardar.TipoMovimientoInventario = TipoMovimiento.SalidaPorTraspaso;

                    int activos    = solicitudGuardar.DetalleGrid.Count(e => e.Activo == EstatusEnum.Activo);
                    int entregados = solicitudGuardar.DetalleGrid.Count(e => e.EstatusID == Estatus.SolicitudProductoEntregado.GetHashCode());

                    if (activos == entregados)
                    {
                        solicitudGuardar.EstatusID = Estatus.SolicitudProductoEntregado.GetHashCode();
                    }

                    solicitudGuardar.Detalle = solicitudGuardar.Detalle.Where(e => e.Entregado && e.Editar).ToList();

                    solicitudProductoBL.Guardar(solicitudGuardar);

                    string mensaje = Properties.Resources.EntregarProductoAlmacen_GuardadoConExito;

                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], mensaje,
                                      MessageBoxButton.OK,
                                      MessageImage.Correct);
                    Limpiar();
                }
                catch (ExcepcionGenerica)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.EntregarProductoAlmacen_ErrorGuardar, MessageBoxButton.OK,
                                      MessageImage.Error);
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.EntregarProductoAlmacen_ErrorGuardar, MessageBoxButton.OK,
                                      MessageImage.Error);
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="solicitud"></param>
        /// <param name="solicitudProductoBL"></param>
        /// <returns></returns>
        private static List <SolicitudProductoDetalleModel> ValidaDisponibilidad(SolicitudProductoInfo solicitud, SolicitudProductoBL solicitudProductoBL)
        {
            dynamic result;

            IEnumerable <int> idsProductos = solicitud.Detalle
                                             .Where(d => d.Producto.FamiliaId != (int)FamiliasEnum.HerramientaYEquipo || d.Producto.FamiliaId != (int)FamiliasEnum.Combustibles)
                                             .Select(d => d.ProductoID).Distinct().ToList();
            SolicitudProductoInfo solicitudGuardar = solicitudProductoBL.ObtenerPorID(solicitud);
            var filtro = new FolioSolicitudInfo
            {
                OrganizacionID = solicitudGuardar.OrganizacionID,
                IdsProductos   = idsProductos.ToList(),
                EstatusID      = Estatus.SolicitudProductoAutorizado.GetHashCode(),
                Activo         = EstatusEnum.Activo
            };

            IList <AlmacenInventarioInfo> existencia             = ObtenerExistencia(idsProductos);
            IList <SolicitudProductoInfo> solicitudesAutorizadas = solicitudProductoBL.ObtenerSolicitudesAutorizadas(filtro);

            var productosValidar = solicitud.Detalle.Select(d => new
            {
                d.ProductoID,
                d.Cantidad,
                d.Producto.FamiliaId
            }).ToList();

            var autorizadas = (from p in solicitudesAutorizadas.SelectMany(sd => sd.Detalle)
                               where p.EstatusID == Estatus.SolicitudProductoAutorizado.GetHashCode()
                               group p by p.ProductoID
                               into pg
                               select new
            {
                ProductoID = pg.Key,
                Autorizada = pg.Sum(c => c.Cantidad)
            }).ToList();
            List <SolicitudProductoDetalleModel> query = (from p in productosValidar
                                                          join a in autorizadas on p.ProductoID equals a.ProductoID into gj
                                                          from pa in gj.DefaultIfEmpty()
                                                          select new SolicitudProductoDetalleModel
            {
                ProductoID = p.ProductoID,
                Cantidad = p.Cantidad,
                Existencia = ObtenerCantidadExistencia(p.ProductoID, p.FamiliaId, p.Cantidad, existencia, (pa == null ? 0 : pa.Autorizada)),            /* Para los  */
                Autorizada = (pa == null ? 0 : pa.Autorizada),
                IsDisponible = (ObtenerCantidadExistencia(p.ProductoID, p.FamiliaId, p.Cantidad, existencia, (pa == null ? 0 : pa.Autorizada)) - (pa == null ? 0 : pa.Autorizada)) >= 0
            }).ToList();

            return(query);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="solicitud"></param>
        /// <returns></returns>
        private IEnumerable <SolicitudProductoDetalleModel> ValidaDisponibilidad(SolicitudProductoInfo solicitud)
        {
            IEnumerable <int> idsProductos = solicitud.Detalle.Select(d => d.ProductoID).Distinct().ToList();
            var filtro = new FolioSolicitudInfo
            {
                OrganizacionID = solicitud.OrganizacionID,
                IdsProductos   = idsProductos.ToList(),
                EstatusID      = Estatus.SolicitudProductoAutorizado.GetHashCode(),
                Activo         = EstatusEnum.Activo
            };

            IEnumerable <AlmacenInventarioInfo> existencia             = ObtenerExistencia(idsProductos);
            IList <SolicitudProductoInfo>       solicitudesAutorizadas =
                solicitudProductoBL.ObtenerSolicitudesAutorizadas(filtro);

            var productosValidar = solicitud.Detalle.Select(d => new
            {
                d.ProductoID,
                d.Cantidad
            }).ToList();

            var autorizadas = (from p in solicitudesAutorizadas.SelectMany(sd => sd.Detalle)
                               where p.EstatusID == Estatus.SolicitudProductoAutorizado.GetHashCode()
                               group p by p.ProductoID
                               into pg
                               select new
            {
                ProductoID = pg.Key,
                Autorizada = pg.Sum(c => c.Cantidad)
            }).ToList();

            var query = (from p in productosValidar
                         join e in existencia on p.ProductoID equals e.ProductoID
                         join a in autorizadas on p.ProductoID equals a.ProductoID into gj
                         from pa in gj.DefaultIfEmpty()
                         select new SolicitudProductoDetalleModel
            {
                ProductoID = p.ProductoID,
                Cantidad = p.Cantidad,
                Existencia = e.Cantidad,
                Autorizada = (pa == null ? 0 : pa.Autorizada),
                IsDisponible =
                    (e.Cantidad - (pa == null ? 0 : pa.Autorizada - p.Cantidad)) >= p.Cantidad
            }).ToList();

            return(query);
        }
Exemplo n.º 11
0
 /// <summary>
 /// Obtiene una entidad de SolicitudProducto por su Id
 /// </summary>
 /// <param name="filtro">Obtiene una entidad SolicitudProducto por su Id</param>
 /// <returns></returns>
 public SolicitudProductoInfo ObtenerPorID(SolicitudProductoInfo filtro)
 {
     try
     {
         Logger.Info();
         return(solicitudProductoDAL.ObtenerPorID(filtro.SolicitudProductoID));
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 12
0
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad SolicitudProducto
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public int Guardar(SolicitudProductoInfo info)
 {
     try
     {
         Logger.Info();
         return(solicitudProductoDAL.Guardar(info));
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Exemplo n.º 13
0
        /// <summary>
        /// Genera los totales por Detalle
        /// </summary>
        /// <param name="solicitud"></param>
        private void GeneraLineaTotales(SolicitudProductoInfo solicitud)
        {
            var sumaImporte = Math.Round(solicitud.Detalle.Sum(det => det.Cantidad * det.PrecioPromedio), 2);

            PolizaModel.Detalle = new List <PolizaDetalleModel>();

            var detalleModel = new PolizaDetalleModel
            {
                CantidadCabezas = string.Empty,
                PesoPromedio    = string.Empty,
                TipoGanado      = string.Empty,
                PesoTotal       = string.Empty,
                ImportePromedio = string.Empty,
                PrecioVenta     = sumaImporte.ToString("N2", CultureInfo.CurrentCulture),
            };

            PolizaModel.Detalle.Add(detalleModel);
        }
 /// <summary>
 /// Inicializa el Contexto
 /// </summary>
 private void InicializaContexto()
 {
     solictante = new UsuarioPL().ObtenerPorID(AuxConfiguracion.ObtenerUsuarioLogueado());
     solictante.OrganizacionID = solictante.Organizacion.OrganizacionID;
     almacen       = ObtenerAlmacenGenerarl(solictante.Organizacion.OrganizacionID);
     autorizadorId = 0;
     Contexto      =
         new SolicitudProductoInfo
     {
         OrganizacionID    = solictante.OrganizacionID,
         UsuarioSolicita   = solictante,
         UsuarioIDSolicita = solictante.UsuarioID,
         Solicitud         = InicializaContextoSolicitud(),
         Detalle           = new List <SolicitudProductoDetalleInfo>(),
         DetalleGrid       = new ObservableCollection <SolicitudProductoDetalleInfo>(),
         FechaCreacion     = DateTime.Today,
         UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(),
         EstatusID         = Estatus.SolicitudProductoPendiente.GetHashCode(),
     };
 }
Exemplo n.º 15
0
        /// <summary>
        /// Genera las Lineas del Detalle
        /// </summary>
        /// <param name="solicitudProducto"></param>
        private void GeneraLineasDetalle(SolicitudProductoInfo solicitudProducto)
        {
            PolizaModel.Detalle = new List <PolizaDetalleModel>();
            PolizaDetalleModel detalleModel;

            foreach (var detalle in solicitudProducto.Detalle)
            {
                detalleModel = new PolizaDetalleModel
                {
                    CantidadCabezas = detalle.Producto.ProductoId.ToString(CultureInfo.InvariantCulture),
                    PesoPromedio    = string.Empty,
                    TipoGanado      = detalle.Producto.Descripcion,
                    PesoTotal       = string.Format("{0} {1}.", detalle.Cantidad.ToString("N0"), detalle.Producto.UnidadMedicion.ClaveUnidad),
                    ImportePromedio = detalle.PrecioPromedio.ToString("N2"),
                    PrecioVenta     = Math.Round(detalle.Cantidad * detalle.PrecioPromedio, 2).ToString("N2"),
                };
                PolizaModel.Detalle.Add(detalleModel);
            }
            polizaImpresion.GenerarDetalles("Detalle");
        }
 /// <summary>
 /// Inicializa el Contexto
 /// </summary>
 private void InicializaContexto()
 {
     usuario = new UsuarioPL().ObtenerPorID(AuxConfiguracion.ObtenerUsuarioLogueado());
     usuario.OrganizacionID = usuario.Organizacion.OrganizacionID;
     almacenGeneral         = ObtenerAlmacenGenerarl(usuario.Organizacion.OrganizacionID);
     autorizadorId          = 0;
     Contexto =
         new SolicitudProductoInfo
     {
         OrganizacionID = usuario.OrganizacionID,
         AlmacenID      = null,
         //UsuarioIDSolicita = usuario.UsuarioID,
         //UsuarioSolicita = usuario,
         Solicitud         = InicializaContextoSolicitud(),
         Detalle           = new List <SolicitudProductoDetalleInfo>(),
         DetalleGrid       = new ObservableCollection <SolicitudProductoDetalleInfo>(),
         FechaCreacion     = DateTime.Today,
         UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(),
         EstatusID         = Estatus.SolicitudProductoEntregado.GetHashCode(),
     };
 }
Exemplo n.º 17
0
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad SolicitudProducto
 /// además de generar movimiento de inventario
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public MemoryStream GuardarMovimientoInventario(SolicitudProductoInfo info)
 {
     try
     {
         Logger.Info();
         return(solicitudProductoDAL.GuardarMovimientoInventario(info));
     }
     catch (ExcepcionServicio ex)
     {
         throw ex;
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        /// <summary>
        /// Asigna el valor al campo folio
        /// </summary>
        private void AyudaConDatosFolio()
        {
            if (Contexto.Solicitud.FolioID > 0)
            {
                Contexto = ObtenerSolicitudPorId(Contexto.Solicitud.FolioID);
                bool isAutorizado = Contexto.IsAutorizado;

                Contexto.Detalle.ForEach(e => e.Eliminar = !isAutorizado);
                Contexto.DetalleGrid = Contexto.Detalle.ConvertirAObservable();

                gridDatos.ItemsSource  = Contexto.Detalle.Where(e => e.Activo == EstatusEnum.Activo);
                skAyudaFolio.IsEnabled = false;
                btnGuardar.Content     = Properties.Resources.btnActualizar;

                var centroCosto = Contexto.Detalle.FirstOrDefault(c => c.Activo == EstatusEnum.Activo);
                if (centroCosto != null)
                {
                    autorizadorId = ObtenerCentroCostoAutorizador(centroCosto.CentroCostoID);
                    Contexto.Solicitud.CentroCosto.AutorizadorID = autorizadorId;
                }
            }
        }
        /// <summary>
        /// Asigna el valor al campo folio
        /// </summary>
        private void AyudaConDatosFolio()
        {
            if (Contexto.Solicitud.FolioID > 0)
            {
                Contexto = ObtenerSolicitudPorId(Contexto.Solicitud.FolioID);
                //Contexto.AlmacenID = almacen.AlmacenID;

                int activos   = Contexto.Detalle.Count(e => e.Activo == EstatusEnum.Activo);
                int recibidos = Contexto.Detalle.Count(e => e.EstatusID == Estatus.SolicitudProductoRecibido.GetHashCode());


                Contexto.Detalle = Contexto.Detalle.Where(e => e.Activo == EstatusEnum.Activo).ToList();
                Contexto.Detalle.ForEach(e =>
                {
                    e.Recibido = e.EstatusID == Estatus.SolicitudProductoRecibido.GetHashCode();
                    e.Editar   = e.EstatusID == Estatus.SolicitudProductoEntregado.GetHashCode();
                });

                DtpFecha.SelectedDate   = Contexto.FechaSolicitud;
                Contexto.DetalleGrid    = Contexto.Detalle.ConvertirAObservable();
                Contexto.UsuarioEntrega = usuario;

                //var habilitarBotonGuardar = Contexto.Detalle.FirstOrDefault(e => e.Editar);
                var habilitarBotonGuardar = Contexto.Detalle.Count(e => !e.Recibido);
                //if (habilitarBotonGuardar == null)
                if (habilitarBotonGuardar == 0)
                {
                    Contexto.Guardar = false;
                }
                else
                {
                    Contexto.Guardar = true;
                }

                gridDatos.ItemsSource  = Contexto.Detalle.Where(e => e.Activo == EstatusEnum.Activo);
                skAyudaFolio.IsEnabled = false;
            }
        }
        public static bool Guardar(SolicitudProductoInfo solicitud)
        {
            using (var solicitudProductoBL = new SolicitudProductoBL())
            {
                SolicitudProductoInfo solicitudGuardar = solicitudProductoBL.ObtenerPorID(solicitud);
                solicitudGuardar.EstatusID                  = Estatus.SolicitudProductoAutorizado.GetHashCode();
                solicitudGuardar.UsuarioIDAutoriza          = Usuario.UsuarioID;
                solicitudGuardar.FechaAutorizado            = DateTime.Now;
                solicitudGuardar.UsuarioModificacionID      = Usuario.UsuarioID;
                solicitudGuardar.ObservacionUsuarioAutoriza = solicitud.ObservacionUsuarioAutoriza;

                foreach (var det in solicitudGuardar.Detalle)
                {
                    var renglon =
                        solicitud.Detalle.FirstOrDefault(d => d.SolicitudProductoDetalleID == det.SolicitudProductoDetalleID);
                    if (renglon != null)
                    {
                        if (renglon.Activo == EstatusEnum.Activo)
                        {
                            det.EstatusID = Estatus.SolicitudProductoAutorizado.GetHashCode();
                        }
                        else
                        {
                            det.Activo = EstatusEnum.Inactivo;
                        }
                    }
                }
                bool inactivar = solicitudGuardar.Detalle.All(e => e.Activo != EstatusEnum.Activo);
                if (inactivar)
                {
                    solicitudGuardar.Activo = EstatusEnum.Inactivo;
                }

                solicitudProductoBL.Guardar(solicitudGuardar);
            }
            return(true);
        }
Exemplo n.º 21
0
 /// <summary>
 /// Metodo para actualizar un registro de SolicitudProducto
 /// </summary>
 /// <param name="info">Valores de la entidad que se actualizarán</param>
 public void Actualizar(SolicitudProductoInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxSolicitudProductoDAL.ObtenerParametrosActualizar(info);
         Update("SolicitudProducto_Actualizar", parameters);
     }
     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);
     }
 }
Exemplo n.º 22
0
        /// <summary>
        /// Registra el envio de alimento de una organizacion a otra
        /// </summary>
        /// <param name="envioAlimento">Información del envio de alimento a guardar</param>
        /// <returns>Regresa una confirmación de registro del envio de alimento</returns>
        internal EnvioAlimentoInfo RegistrarEnvioAlimento(EnvioAlimentoInfo envioAlimento)
        {
            EnvioAlimentoInfo confirmacion = new EnvioAlimentoInfo();

            try
            {
                Logger.Info();
                AlmacenMovimientoBL almacenMovimientoBL = new AlmacenMovimientoBL();

                EnvioAlimentoDAL           salidaAlimentoDAL          = new EnvioAlimentoDAL();
                AlmacenMovimientoDetalleBL almacenMovimientoDetalleBl = new AlmacenMovimientoDetalleBL();
                AlmacenMovimientoDetalle   detalleMovimiento          = new AlmacenMovimientoDetalle();
                AlmacenInventarioBL        inventario = new AlmacenInventarioBL();
                AlmacenInventarioLoteBL    loteBl     = new AlmacenInventarioLoteBL();

                AlmacenMovimientoInfo almacenMovimiento = new AlmacenMovimientoInfo();
                almacenMovimiento.AlmacenID        = envioAlimento.Almacen.AlmacenID;
                almacenMovimiento.TipoMovimientoID = TipoMovimiento.ProductoSalidaTraspaso.GetHashCode();

                almacenMovimiento.Status                = Estatus.AplicadoInv.GetHashCode();
                almacenMovimiento.UsuarioCreacionID     = envioAlimento.UsuarioCreacionID;
                almacenMovimiento.UsuarioModificacionID = envioAlimento.UsuarioCreacionID;
                almacenMovimiento.EsEnvioAlimento       = true;
                almacenMovimiento.OrganizacionID        = envioAlimento.Origen.OrganizacionID;

                PolizaAbstract     poliza       = null;
                IList <PolizaInfo> listaPolizas = null;

                using (var transaccion = new TransactionScope())
                {
                    //registrar en TB AlmacenMovimiento
                    long almacenMovimientoID = almacenMovimientoBL.Crear(almacenMovimiento);
                    almacenMovimiento.AlmacenMovimientoID = almacenMovimientoID;
                    envioAlimento.AlmacenMovimientoId     = almacenMovimientoID;

                    if (envioAlimento.AlmacenMovimientoId == 0)
                    {
                        return new EnvioAlimentoInfo {
                                   EnvioId = 0
                        }
                    }
                    ;

                    //registrar en TB AlmacenMovimientoDetalle
                    detalleMovimiento.AlmacenMovimientoID = almacenMovimiento.AlmacenMovimientoID;
                    almacenMovimiento = almacenMovimientoBL.ObtenerPorId(almacenMovimiento.AlmacenMovimientoID);

                    if (almacenMovimiento.AlmacenMovimientoID == 0)
                    {
                        return new EnvioAlimentoInfo {
                                   EnvioId = 0
                        }
                    }
                    ;

                    envioAlimento.Folio        = almacenMovimiento.FolioMovimiento;
                    detalleMovimiento.Producto = envioAlimento.Producto;

                    if (detalleMovimiento.Producto.ManejaLote)
                    {
                        detalleMovimiento.AlmacenInventarioLoteId = envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().AlmacenInventarioLoteId;

                        detalleMovimiento.Precio = envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().PrecioPromedio;
                    }
                    else
                    {
                        detalleMovimiento.Precio = envioAlimento.AlmacenInventario.PrecioPromedio;
                    }

                    detalleMovimiento.ProductoID        = envioAlimento.Producto.ProductoId;
                    detalleMovimiento.Cantidad          = envioAlimento.Cantidad;
                    detalleMovimiento.Importe           = envioAlimento.Importe;
                    detalleMovimiento.UsuarioCreacionID = envioAlimento.UsuarioCreacionID;
                    detalleMovimiento.Piezas            = envioAlimento.Piezas;
                    int almacenMovimientoDetalleid = almacenMovimientoDetalleBl.Crear(detalleMovimiento);
                    if (almacenMovimientoDetalleid == 0)
                    {
                        return new EnvioAlimentoInfo {
                                   EnvioId = 0
                        }
                    }
                    ;

                    //registrar en TB EnvioProducto
                    confirmacion = salidaAlimentoDAL.RegistrarEnvioAlimento(envioAlimento);

                    if (confirmacion.EnvioId == 0)
                    {
                        return new EnvioAlimentoInfo {
                                   EnvioId = 0
                        }
                    }
                    ;

                    envioAlimento.EnvioId    = confirmacion.EnvioId;
                    envioAlimento.FechaEnvio = confirmacion.FechaEnvio;

                    envioAlimento.AlmacenInventario.Cantidad -= envioAlimento.Cantidad;
                    envioAlimento.AlmacenInventario.Importe  -= envioAlimento.Importe;
                    decimal precioPromedioInicial = 0M;
                    if (envioAlimento.Producto.ManejaLote)
                    {
                        precioPromedioInicial = envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().PrecioPromedio;
                    }
                    else
                    {
                        precioPromedioInicial = envioAlimento.AlmacenInventario.PrecioPromedio;
                    }
                    if (envioAlimento.AlmacenInventario.Cantidad == 0)
                    {
                        envioAlimento.AlmacenInventario.PrecioPromedio = 0M;
                    }

                    if (envioAlimento.AlmacenInventario.Cantidad < 0)
                    {
                        envioAlimento.AlmacenInventario.Cantidad = 0;
                    }

                    if (envioAlimento.AlmacenInventario.Importe < 0)
                    {
                        envioAlimento.AlmacenInventario.Importe = 0;
                    }

                    if (envioAlimento.AlmacenInventario.Cantidad > 0 && envioAlimento.AlmacenInventario.Importe > 0)
                    {
                        envioAlimento.AlmacenInventario.PrecioPromedio = envioAlimento.AlmacenInventario.Importe / envioAlimento.AlmacenInventario.Cantidad;
                    }

                    envioAlimento.AlmacenInventario.UsuarioModificacionID = envioAlimento.UsuarioCreacionID;
                    inventario.ActualizarPorProductoId(envioAlimento.AlmacenInventario);

                    if (envioAlimento.Producto.ManejaLote)
                    {
                        FechaInfo fechaInfo = new FechaBL().ObtenerFechaActual();
                        envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Cantidad -= envioAlimento.Cantidad;
                        envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Importe  -= envioAlimento.Importe;

                        if (envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Cantidad <= 0)
                        {
                            envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().PrecioPromedio = 0M;
                            envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Cantidad       = 0;
                            envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Importe        = 0;

                            envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().FechaInicio = fechaInfo.FechaActual;
                        }

                        if (envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Importe > 0 && envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Cantidad > 0)
                        {
                            envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().PrecioPromedio = envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Importe / envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Cantidad;
                        }
                        else
                        {
                            envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Activo   = EstatusEnum.Inactivo;
                            envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().FechaFin = fechaInfo.FechaActual;
                        }

                        if (envioAlimento.Producto.SubfamiliaId == SubFamiliasEnum.Forrajes.GetHashCode())
                        {
                            envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Piezas -= envioAlimento.Piezas;
                            if (envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Piezas < 0)
                            {
                                envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().Piezas = 0;
                            }
                        }

                        envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().UsuarioModificacionId = envioAlimento.UsuarioCreacionID;
                        loteBl.ActualizarEnvioAlimento(envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault());
                    }

                    if (salidaAlimentoDAL.RegistrarRecepcionProductoEnc(envioAlimento, TipoMovimiento.ProductoSalidaTraspaso) == 0)
                    {
                        return new EnvioAlimentoInfo {
                                   EnvioId = 0
                        }
                    }
                    ;

                    if (salidaAlimentoDAL.RegistrarRecepcionProductoDet(envioAlimento, TipoMovimiento.ProductoSalidaTraspaso) == 0)
                    {
                        return new EnvioAlimentoInfo {
                                   EnvioId = 0
                        }
                    }
                    ;

                    poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.SalidaTraspaso);

                    SolicitudProductoInfo oSolicitud = new SolicitudProductoInfo();
                    oSolicitud.FolioSolicitud    = envioAlimento.Folio;
                    oSolicitud.OrganizacionID    = envioAlimento.Origen.OrganizacionID;
                    oSolicitud.AlmacenGeneralID  = envioAlimento.Almacen.AlmacenID;
                    oSolicitud.Almacen           = new AlmacenBL().ObtenerAlmacenPorOrganizacion(envioAlimento.Destino.OrganizacionID).FirstOrDefault();
                    oSolicitud.FechaEntrega      = envioAlimento.FechaEnvio;
                    oSolicitud.UsuarioCreacionID = envioAlimento.UsuarioCreacionID;
                    oSolicitud.Detalle           = new List <SolicitudProductoDetalleInfo>();
                    SolicitudProductoDetalleInfo detalle = new SolicitudProductoDetalleInfo()
                    {
                        Cantidad       = envioAlimento.Cantidad,
                        PrecioPromedio = envioAlimento.Producto.ManejaLote ? envioAlimento.AlmacenInventario.ListaAlmacenInventarioLote.FirstOrDefault().PrecioPromedio: envioAlimento.AlmacenInventario.PrecioPromedio,
                        Producto       = envioAlimento.Producto
                    };
                    detalle.PrecioPromedio = decimal.Round(detalle.PrecioPromedio, 2);
                    if (detalle.PrecioPromedio == 0)
                    {
                        detalle.PrecioPromedio = precioPromedioInicial;
                    }
                    oSolicitud.Detalle.Add(detalle);

                    listaPolizas = poliza.GeneraPoliza(oSolicitud);
                    var polizaDAL = new PolizaDAL();
                    if (listaPolizas != null && listaPolizas.Any())
                    {
                        string Referencia = "03  " + envioAlimento.Folio.ToString() + new Random().Next(10, 20).ToString() + new Random().Next(30, 40) + DateTime.Now.Millisecond.ToString() + listaPolizas.ToList().FirstOrDefault().ClaseDocumento;
                        listaPolizas.ToList().ForEach(datos =>
                        {
                            datos.NumeroReferencia       = envioAlimento.Folio.ToString();
                            datos.OrganizacionID         = oSolicitud.OrganizacionID;
                            datos.UsuarioCreacionID      = envioAlimento.UsuarioCreacionID;
                            datos.Activo                 = EstatusEnum.Activo;
                            datos.ArchivoEnviadoServidor = 1;
                            datos.Referencia3            = Referencia;
                        });

                        ParametroOrganizacionInfo oParametroOrg = new ParametroOrganizacionBL().ObtenerPorOrganizacionIDClaveParametro(oSolicitud.OrganizacionID, ParametrosEnum.CuentaInventarioTransito.ToString());
                        if (oParametroOrg != null)
                        {
                            listaPolizas[listaPolizas.ToList().FindIndex(datos => datos.NumeroLinea.Trim() == "1")].Cuenta = oParametroOrg.Valor;
                        }

                        envioAlimento.Poliza = poliza.ImprimePoliza(oSolicitud, listaPolizas);
                        polizaDAL.CrearServicioPI(listaPolizas, TipoPoliza.SalidaTraspaso);

                        transaccion.Complete();
                    }
                }

                return(envioAlimento);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Exemplo n.º 23
0
 internal static List <SolicitudProductoInfo> ObtenerConciliacionPorAlmacenMovimientoXML(IDataReader reader)
 {
     try
     {
         Logger.Info();
         var distribuciones = new List <SolicitudProductoInfo>();
         SolicitudProductoInfo distribucion;
         while (reader.Read())
         {
             distribucion = new SolicitudProductoInfo
             {
                 SolicitudProductoID = Convert.ToInt32(reader["SolicitudProductoID"]),
                 Organizacion        = new OrganizacionInfo
                 {
                     OrganizacionID = Convert.ToInt32(reader["OrganizacionID"])
                 },
                 OrganizacionID = Convert.ToInt32(reader["OrganizacionID"]),
                 FolioSolicitud = Convert.ToInt64(reader["FolioSolicitud"]),
                 FechaSolicitud = Convert.ToDateTime(reader["FechaSolicitud"]),
                 Estatus        = new EstatusInfo
                 {
                     EstatusId = Convert.ToInt32(reader["EstatusID"])
                 },
                 EstatusID       = Convert.ToInt32(reader["EstatusID"]),
                 FechaAutorizado = Convert.ToDateTime(reader["FechaAutorizado"]),
                 FechaEntrega    = Convert.ToDateTime(reader["FechaEntrega"]),
                 CentroCosto     = new CentroCostoInfo
                 {
                     CentroCostoID = Convert.ToInt32(reader["CentroCostoID"])
                 },
                 CentroCostoID = Convert.ToInt32(reader["CentroCostoID"]),
                 Almacen       = new AlmacenInfo
                 {
                     AlmacenID   = Convert.ToInt32(reader["AlmacenID"]),
                     Descripcion = Convert.ToString(reader["Almacen"]),
                     TipoAlmacen = new TipoAlmacenInfo
                     {
                         TipoAlmacenID = Convert.ToInt32(reader["TipoAlmacenID"])
                     },
                     TipoAlmacenID = Convert.ToInt32(reader["TipoAlmacenID"])
                 },
                 AlmacenID           = Convert.ToInt32(reader["AlmacenID"]),
                 AlmacenMovimientoID = Convert.ToInt64(reader["AlmacenMovimientoID"])
             };
             distribuciones.Add(distribucion);
         }
         reader.NextResult();
         var distribucionIngredientesOrganizaciones = new List <SolicitudProductoDetalleInfo>();
         SolicitudProductoDetalleInfo distribucionIngredienteOrganizacion;
         while (reader.Read())
         {
             distribucionIngredienteOrganizacion = new SolicitudProductoDetalleInfo
             {
                 SolicitudProductoDetalleID = Convert.ToInt32(reader["SolicitudProductoDetalleID"]),
                 SolicitudProductoID        = Convert.ToInt32(reader["SolicitudProductoID"]),
                 Producto = new ProductoInfo
                 {
                     ProductoId     = Convert.ToInt32(reader["ProductoID"]),
                     Descripcion    = Convert.ToString(reader["Producto"]),
                     UnidadId       = Convert.ToInt32(reader["UnidadID"]),
                     UnidadMedicion = new UnidadMedicionInfo
                     {
                         UnidadID = Convert.ToInt32(reader["UnidadID"]),
                     },
                     SubFamilia = new SubFamiliaInfo
                     {
                         SubFamiliaID = Convert.ToInt32(reader["SubFamiliaID"])
                     },
                     SubfamiliaId = Convert.ToInt32(reader["SubFamiliaID"])
                 },
                 ProductoID    = Convert.ToInt32(reader["ProductoID"]),
                 Cantidad      = Convert.ToDecimal(reader["Cantidad"]),
                 CamionReparto = new CamionRepartoInfo
                 {
                     CamionRepartoID = Convert.ToInt32(reader["CamionRepartoID"])
                 },
                 CamionRepartoID = Convert.ToInt32(reader["CamionRepartoID"]),
                 Estatus         = new EstatusInfo
                 {
                     EstatusId = Convert.ToInt32(reader["EstatusID"])
                 },
                 EstatusID      = Convert.ToInt32(reader["EstatusID"]),
                 PrecioPromedio = Convert.ToDecimal(reader["Precio"])
             };
             distribucionIngredientesOrganizaciones.Add(distribucionIngredienteOrganizacion);
         }
         distribuciones.ForEach(datos =>
         {
             datos.Detalle =
                 distribucionIngredientesOrganizaciones.Where(
                     id => id.SolicitudProductoID == datos.SolicitudProductoID).ToList();
         });
         return(distribuciones);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        /// <summary>
        /// Método para cancelar
        /// </summary>
        private void Guardar()
        {
            bool guardar = ValidaGuardar();

            if (guardar)
            {
                try
                {
                    SolicitudProductoInfo solicitudGuardar = Contexto;
                    solicitudGuardar.UsuarioIDEntrega      = usuario.UsuarioID;
                    solicitudGuardar.FechaEntrega          = DateTime.Now;
                    solicitudGuardar.UsuarioModificacionID = usuario.UsuarioID;
                    //solicitudGuardar.AlmacenID = almacen.AlmacenID;
                    solicitudGuardar.TipoMovimientoInventario = TipoMovimiento.EntradaAlmacen;

                    int activos   = solicitudGuardar.Detalle.Count(e => e.Activo == EstatusEnum.Activo);
                    int recibidos =
                        solicitudGuardar.Detalle.Count(
                            e => e.EstatusID == Estatus.SolicitudProductoRecibido.GetHashCode());

                    if (activos == recibidos)
                    {
                        solicitudGuardar.EstatusID = Estatus.SolicitudProductoRecibido.GetHashCode();
                    }

                    solicitudGuardar.Detalle = solicitudGuardar.Detalle.Where(e => e.Recibido && e.Editar).ToList();
                    MemoryStream pdf = solicitudProductoBL.GuardarMovimientoInventario(solicitudGuardar);
                    if (pdf != null)
                    {
                        var exportarPoliza = new ExportarPoliza();
                        if (solicitudGuardar.AlmacenID.HasValue)
                        {
                            exportarPoliza.ImprimirPoliza(pdf, string.Format("{0} {1}", "Poliza", TipoPoliza.SalidaTraspaso));
                        }
                        else
                        {
                            exportarPoliza.ImprimirPoliza(pdf,
                                                          string.Format("{0} {1}", "Poliza", TipoPoliza.SalidaConsumo));
                        }
                    }
                    string mensaje = Properties.Resources.RecibirProductoAlmacen_GuardadoConExito;
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], mensaje,
                                      MessageBoxButton.OK,
                                      MessageImage.Correct);
                    Limpiar();
                }
                catch (ExcepcionServicio ex)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      ex.Message, MessageBoxButton.OK,
                                      MessageImage.Stop);
                }
                catch (ExcepcionGenerica)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.RecibirProductoAlmacen_ErrorGuardar, MessageBoxButton.OK,
                                      MessageImage.Error);
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.RecibirProductoAlmacen_ErrorGuardar, MessageBoxButton.OK,
                                      MessageImage.Error);
                }
            }
        }
Exemplo n.º 25
0
        private IList <PolizaInfo> ObtenerPoliza(SolicitudProductoInfo solicitud)
        {
            var polizasSalidaConsumo = new List <PolizaInfo>();

            IList <ClaseCostoProductoInfo> cuentasAlmacenProductoSalida =
                ObtenerCostosProducto(solicitud.AlmacenGeneralID);

            if (cuentasAlmacenProductoSalida == null)
            {
                throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén general");
            }
            IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP();

            TipoPolizaInfo tipoPoliza =
                TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.SalidaConsumo.GetHashCode());

            string textoDocumento = tipoPoliza.TextoDocumento;
            string tipoMovimiento = tipoPoliza.ClavePoliza;
            string postFijoRef3   = tipoPoliza.PostFijoRef3;

            var linea = 1;
            //TO DO REVISAR SI CAMBIARA EL REF 3
            var ref3 = new StringBuilder();

            ref3.Append("03");
            ref3.Append(
                string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft(
                    10, ' '));
            ref3.Append(new Random(10).Next(10, 20));
            ref3.Append(new Random(30).Next(30, 40));
            ref3.Append(DateTime.Now.Millisecond);
            ref3.Append(postFijoRef3);

            string numeroReferencia = ObtenerNumeroReferencia;

            DateTime fecha        = solicitud.FechaEntrega.HasValue ? solicitud.FechaEntrega.Value : DateTime.MinValue;
            string   archivoFolio = ObtenerArchivoFolio(fecha);

            var organizacionBL            = new OrganizacionBL();
            OrganizacionInfo organizacion = organizacionBL.ObtenerPorAlmacenID(solicitud.AlmacenGeneralID);

            if (organizacion == null)
            {
                organizacion = new OrganizacionInfo
                {
                    TipoOrganizacion = new TipoOrganizacionInfo()
                };
            }
            string claveParametro;
            var    centrosCosto    = ObtenerCentrosCosto();
            var    camionesReparto = ObtenerCamionesRepartoPorOrganizacion(organizacion.OrganizacionID); //camionRepartoBL.ObtenerPorOrganizacionID(organizacion.OrganizacionID);

            var  primerDetalle = solicitud.Detalle.FirstOrDefault();
            bool esCamionReparto;

            if (primerDetalle != null && primerDetalle.CamionRepartoID.HasValue && primerDetalle.CamionRepartoID.Value > 0)
            {
                claveParametro  = ParametrosEnum.CuentaCostosDiesel.ToString();
                esCamionReparto = true;
            }
            else
            {
                claveParametro  = ParametrosEnum.CuentaCostosProductosAlmacen.ToString();
                esCamionReparto = false;
            }
            ParametroOrganizacionInfo parametroCuenta = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID,
                                                                                             claveParametro);

            if (parametroCuenta == null)
            {
                throw new ExcepcionServicio(string.Format("No se encuentró valor de la cuenta, para el parámetro {0}, en la organización", claveParametro));
            }

            foreach (var solicitudDetalle in solicitud.Detalle)
            {
                int centroCostoID;
                if (esCamionReparto)
                {
                    CamionRepartoInfo camionReparto =
                        camionesReparto.FirstOrDefault(
                            camion => camion.CamionRepartoID == solicitudDetalle.CamionRepartoID);
                    if (camionReparto == null)
                    {
                        camionReparto = new CamionRepartoInfo();
                    }
                    centroCostoID = camionReparto.CentroCosto.CentroCostoID;
                }
                else
                {
                    centroCostoID = solicitud.CentroCostoID;
                }

                CentroCostoInfo centroCostoCargo =
                    centrosCosto.FirstOrDefault(centro => centro.CentroCostoID == centroCostoID);

                if (centroCostoCargo == null)
                {
                    throw new ExcepcionServicio("No se encuentró el centro de costo");
                }

                var datos = new DatosPolizaInfo
                {
                    NumeroReferencia  = numeroReferencia,
                    FechaEntrada      = solicitud.FechaEntrega.HasValue ? solicitud.FechaEntrega.Value : DateTime.MinValue,
                    Folio             = solicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture),
                    CabezasRecibidas  = string.Empty,
                    NumeroDocumento   = string.Empty,
                    ClaseDocumento    = postFijoRef3,
                    ClaveProveedor    = string.Empty,
                    Importe           = string.Format("{0}", Math.Round(solicitudDetalle.Cantidad * solicitudDetalle.PrecioPromedio, 2).ToString("F2")),
                    IndicadorImpuesto = String.Empty,
                    CentroCosto       = string.Format("{0}{1}{2}",
                                                      "SA0",
                                                      organizacion.OrganizacionID,
                                                      centroCostoCargo.CentroCostoSAP),
                    Renglon          = Convert.ToString(linea++),
                    Cabezas          = string.Empty,
                    ImporteIva       = "0",
                    Ref3             = ref3.ToString(),
                    Cuenta           = parametroCuenta.Valor,
                    CodigoRetencion  = string.Empty,
                    Division         = organizacion.Division,
                    TipoRetencion    = string.Empty,
                    ArchivoFolio     = archivoFolio,
                    DescripcionCosto = string.Empty,
                    PesoOrigen       = 0,
                    TipoDocumento    = textoDocumento,
                    ComplementoRef1  = string.Empty,
                    Concepto         = String.Format("{0}-{1} {2} {3} {4}",
                                                     tipoMovimiento,
                                                     solicitud.FolioSolicitud,
                                                     solicitudDetalle.Cantidad.ToString("N2"),
                                                     solicitudDetalle.Producto.Descripcion,
                                                     (Math.Round(solicitudDetalle.Cantidad * solicitudDetalle.PrecioPromedio, 2).ToString("C2"))),
                    Sociedad            = organizacion.Sociedad,
                    DescripcionProducto = solicitudDetalle.Producto.Descripcion,
                    Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                };
                PolizaInfo polizaSalida = GeneraRegistroPoliza(datos);
                polizasSalidaConsumo.Add(polizaSalida);

                var cuentaSapSale = cuentasAlmacenProductoSalida.FirstOrDefault(
                    cuenta => cuenta.ProductoID == solicitudDetalle.Producto.ProductoId);

                if (cuentaSapSale == null)
                {
                    cuentaSapSale = new ClaseCostoProductoInfo();
                }
                var claveContableAbono = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSale.CuentaSAPID);

                if (claveContableAbono == null)
                {
                    throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}", solicitudDetalle.Producto.Descripcion));
                }

                datos = new DatosPolizaInfo
                {
                    NumeroReferencia  = numeroReferencia,
                    FechaEntrada      = solicitud.FechaEntrega.HasValue ? solicitud.FechaEntrega.Value : DateTime.MinValue,
                    Folio             = solicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture),
                    CabezasRecibidas  = string.Empty,
                    NumeroDocumento   = string.Empty,
                    ClaseDocumento    = postFijoRef3,
                    ClaveProveedor    = string.Empty,
                    Importe           = string.Format("{0}", (Math.Round(solicitudDetalle.Cantidad * solicitudDetalle.PrecioPromedio, 2) * -1).ToString("F2")),
                    IndicadorImpuesto = String.Empty,
                    CentroCosto       = string.Empty,
                    Renglon           = Convert.ToString(linea++),
                    Cabezas           = string.Empty,
                    ImporteIva        = "0",
                    Ref3             = ref3.ToString(),
                    Cuenta           = claveContableAbono.CuentaSAP,
                    CodigoRetencion  = string.Empty,
                    TipoRetencion    = string.Empty,
                    ArchivoFolio     = archivoFolio,
                    DescripcionCosto = string.Empty,
                    Division         = organizacion.Division,
                    PesoOrigen       = 0,
                    TipoDocumento    = textoDocumento,
                    ComplementoRef1  = string.Empty,
                    Concepto         = String.Format("{0}-{1} {2} {3} {4}",
                                                     tipoMovimiento,
                                                     solicitud.FolioSolicitud,
                                                     solicitudDetalle.Producto.Descripcion,
                                                     solicitudDetalle.Cantidad.ToString("N2"),
                                                     (Math.Round(solicitudDetalle.Cantidad * solicitudDetalle.PrecioPromedio, 2).ToString("C2"))),
                    Sociedad            = organizacion.Sociedad,
                    DescripcionProducto = solicitudDetalle.Producto.Descripcion,
                    Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                };
                polizaSalida = GeneraRegistroPoliza(datos);
                polizasSalidaConsumo.Add(polizaSalida);
            }
            return(polizasSalidaConsumo);
        }
        /// <summary>
        /// Asigna el valor al campo folio
        /// </summary>
        private void AyudaConDatosFolio()
        {
            try
            {
                if (Contexto.Solicitud.FolioID > 0)
                {
                    if (Contexto.UsuarioIDEntrega == 0)
                    {
                        Contexto.UsuarioIDEntrega = usuario.UsuarioID;
                        Contexto.UsuarioEntrega   = usuario;
                    }
                    Contexto = ObtenerSolicitudPorId(Contexto.Solicitud.FolioID);

                    //Obtener los productos ligados a familia de HerramientaYEquipo y valdiar si ya se entrego en INFOR
                    IList <SolicitudProductoDetalleInfo> idsProductosHerramienta = Contexto.Detalle
                                                                                   .Where(d => d.Producto.FamiliaId == (int)FamiliasEnum.HerramientaYEquipo).ToList();
                    if (idsProductosHerramienta.Any())
                    {
                        //Validar si el folio ya se encuentra en INFOR Entregado
                        if (!solicitudProductoBL.ExisteFolioEnINFOR(Contexto.Solicitud.FolioSolicitud, Contexto.Solicitud.OrganizacionID))
                        {
                            Limpiar();
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.EntregarProductoAlmacen_MsgNoExisteReferenciaInfor,
                                              MessageBoxButton.OK,
                                              MessageImage.Warning);
                            return;
                        }
                    }

                    int porEntregar = Contexto.Detalle.Count(e => e.EstatusID == Estatus.SolicitudProductoAutorizado.GetHashCode());

                    if (porEntregar > 0)
                    {
                        Contexto.Detalle = Contexto.Detalle.Where(e => e.Activo == EstatusEnum.Activo).ToList();
                        var disponibilidad = ValidaDisponibilidad(Contexto);

                        Contexto.Detalle.ForEach(e =>
                        {
                            e.Entregado = e.EstatusID == Estatus.SolicitudProductoEntregado.GetHashCode() ||
                                          e.EstatusID == Estatus.SolicitudProductoRecibido.GetHashCode();
                            var registro =
                                disponibilidad.FirstOrDefault(d => d.ProductoID == e.ProductoID);
                            if (registro != null && !registro.IsDisponible)
                            {
                                e.Editar = registro.IsDisponible;
                            }
                            else
                            {
                                e.Editar = e.EstatusID == Estatus.SolicitudProductoPendiente.GetHashCode() ||
                                           e.EstatusID == Estatus.SolicitudProductoAutorizado.GetHashCode();
                            }
                        });

                        DtpFecha.SelectedDate   = Contexto.FechaSolicitud;
                        Contexto.DetalleGrid    = Contexto.Detalle.ConvertirAObservable();
                        Contexto.UsuarioEntrega = usuario;

                        var habilitarBotonGuardar = Contexto.Detalle.FirstOrDefault(e => e.Editar);
                        if (habilitarBotonGuardar == null)
                        {
                            Contexto.Guardar = false;
                        }

                        gridDatos.ItemsSource  = Contexto.Detalle.Where(e => e.Activo == EstatusEnum.Activo);
                        skAyudaFolio.IsEnabled = false;
                    }
                    else
                    {
                        Limpiar();
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.EntregarProductoAlmacen_MsgNoTieneEstatusAutorizada,
                                          MessageBoxButton.OK, MessageImage.Warning);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  Properties.Resources.EntregarProductoAlmacen_MsgErrorConsultarFolio,
                                  MessageBoxButton.OK, MessageImage.Error);
            }
        }
Exemplo n.º 27
0
        private IList <PolizaInfo> ObtenerPoliza(SolicitudProductoInfo solicitud)
        {
            var polizasSalidaTraspaso = new List <PolizaInfo>();

            IList <ClaseCostoProductoInfo> cuentasAlmacenProductoSalida =
                ObtenerCostosProducto(solicitud.AlmacenGeneralID);
            IList <ClaseCostoProductoInfo> cuentasAlmacenProductoEntrada =
                ObtenerCostosProducto(solicitud.AlmacenID.HasValue ? solicitud.AlmacenID.Value : 0);

            if (cuentasAlmacenProductoSalida == null)
            {
                throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén general");
            }
            if (cuentasAlmacenProductoEntrada == null)
            {
                throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén  de destino");
            }

            TipoPolizaInfo tipoPoliza =
                TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.SalidaTraspaso.GetHashCode());

            if (tipoPoliza == null)
            {
                throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA",
                                                          TipoPoliza.SalidaTraspaso));
            }

            IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP();
            string textoDocumento            = tipoPoliza.TextoDocumento;
            string tipoMovimiento            = tipoPoliza.ClavePoliza;
            string postFijoRef3 = tipoPoliza.PostFijoRef3;

            var linea = 1;

            //TO DO REVISAR SI CAMBIARA EL REF 3
            var ref3 = new StringBuilder();

            ref3.Append("03");
            ref3.Append(
                string.Format("{0}{1}{2}", DateTime.Today.Day, DateTime.Today.Month, DateTime.Today.Year).PadLeft(
                    10, ' '));
            ref3.Append(new Random(10).Next(10, 20));
            ref3.Append(new Random(30).Next(30, 40));
            ref3.Append(DateTime.Now.Millisecond);
            ref3.Append(postFijoRef3);

            string numeroReferencia = ObtenerNumeroReferencia;

            DateTime fecha        = solicitud.FechaEntrega.HasValue ? solicitud.FechaEntrega.Value : DateTime.MinValue;
            string   archivoFolio = ObtenerArchivoFolio(fecha);

            var organizacionBL            = new OrganizacionBL();
            OrganizacionInfo organizacion = organizacionBL.ObtenerPorAlmacenID(solicitud.AlmacenGeneralID);

            if (organizacion == null)
            {
                organizacion = new OrganizacionInfo
                {
                    TipoOrganizacion = new TipoOrganizacionInfo()
                };
            }
            IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamilia =
                ObtenerCostosSubFamilia(solicitud.AlmacenID.HasValue ? solicitud.AlmacenID.Value : 0);

            ParametroOrganizacionInfo parametroCentroCosto =
                ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID,
                                                     ParametrosEnum.CTACENTROCOSTOMP.ToString());

            if (parametroCentroCosto == null)
            {
                throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO"));
            }
            bool afectaCosto;

            foreach (var solicitudDetalle in solicitud.Detalle)
            {
                CuentaSAPInfo claveContableCargo;
                afectaCosto = ValidarAfectacionCuentaCosto(solicitudDetalle.Producto);
                if (!afectaCosto && (solicitud.Almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() ||
                                     solicitud.Almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() ||
                                     solicitud.Almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()))
                {
                    var cuentaSapSubFamiliaEntrada = cuentasSubFamilia.FirstOrDefault(
                        cuenta => cuenta.SubFamiliaID == solicitudDetalle.Producto.SubFamilia.SubFamiliaID);

                    if (cuentaSapSubFamiliaEntrada == null)
                    {
                        cuentaSapSubFamiliaEntrada = new CuentaAlmacenSubFamiliaInfo();
                    }
                    claveContableCargo =
                        cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSubFamiliaEntrada.CuentaSAPID);
                }
                else
                {
                    var cuentaSapEntrada = cuentasAlmacenProductoEntrada.FirstOrDefault(
                        cuenta => cuenta.ProductoID == solicitudDetalle.ProductoID);
                    if (cuentaSapEntrada == null)
                    {
                        cuentaSapEntrada = new ClaseCostoProductoInfo();
                    }
                    claveContableCargo =
                        cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapEntrada.CuentaSAPID);
                }

                if (solicitud.Almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode())
                {
                    ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID,
                                                                                                       ParametrosEnum.CuentaMedicamentoTransito.ToString());

                    if (cuentaMedicamento == null)
                    {
                        cuentaMedicamento = new ParametroOrganizacionInfo
                        {
                            Valor = string.Empty
                        };
                    }

                    claveContableCargo =
                        cuentasSap.FirstOrDefault(
                            sap =>
                            sap.CuentaSAP.Equals(cuentaMedicamento.Valor, StringComparison.InvariantCultureIgnoreCase));
                }
                if (claveContableCargo == null)
                {
                    throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}",
                                                              solicitudDetalle.Producto.Descripcion));
                }
                if ((solicitudDetalle.Cantidad * solicitudDetalle.PrecioPromedio) <= 0)
                {
                    continue;
                }
                var datos = new DatosPolizaInfo
                {
                    NumeroReferencia = numeroReferencia,
                    FechaEntrada     =
                        solicitud.FechaEntrega.HasValue
                                            ? solicitud.FechaEntrega.Value
                                            : DateTime.MinValue,
                    Folio          = solicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture),
                    ClaseDocumento = postFijoRef3,
                    Importe        =
                        string.Format("{0}",
                                      Math.Round(
                                          solicitudDetalle.Cantidad * solicitudDetalle.PrecioPromedio, 2).
                                      ToString("F2")),
                    Renglon     = Convert.ToString(linea++),
                    ImporteIva  = "0",
                    Ref3        = ref3.ToString(),
                    Cuenta      = claveContableCargo.CuentaSAP,
                    CentroCosto =
                        claveContableCargo.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto)
                                            ? parametroCentroCosto.Valor
                                            : string.Empty,
                    Division      = organizacion.Division,
                    ArchivoFolio  = archivoFolio,
                    PesoOrigen    = 0,
                    TipoDocumento = textoDocumento,
                    Concepto      = String.Format("{0}-{1} {2} {3} {4}",
                                                  tipoMovimiento,
                                                  solicitud.FolioSolicitud.ToString(
                                                      CultureInfo.InvariantCulture),
                                                  solicitudDetalle.Producto.Descripcion,
                                                  string.Format("{0} {1}.",
                                                                solicitudDetalle.Cantidad.ToString("N2"),
                                                                solicitudDetalle.Producto.UnidadMedicion.
                                                                ClaveUnidad),
                                                  solicitudDetalle.PrecioPromedio.ToString("C2")),
                    Sociedad            = organizacion.Sociedad,
                    DescripcionProducto = claveContableCargo.Descripcion,
                    Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                };
                PolizaInfo polizaSalida = GeneraRegistroPoliza(datos);
                polizasSalidaTraspaso.Add(polizaSalida);

                var cuentaSapSale = cuentasAlmacenProductoSalida.FirstOrDefault(
                    cuenta => cuenta.ProductoID == solicitudDetalle.Producto.ProductoId);

                if (cuentaSapSale == null)
                {
                    cuentaSapSale = new ClaseCostoProductoInfo();
                }
                var claveContableAbono = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSale.CuentaSAPID);
                if (claveContableAbono == null)
                {
                    throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}",
                                                              solicitudDetalle.Producto.Descripcion));
                }

                datos = new DatosPolizaInfo
                {
                    NumeroReferencia = numeroReferencia,
                    FechaEntrada     =
                        solicitud.FechaEntrega.HasValue ? solicitud.FechaEntrega.Value : DateTime.MinValue,
                    Folio          = solicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture),
                    ClaseDocumento = postFijoRef3,
                    Importe        =
                        string.Format("{0}", (Math.Round(solicitudDetalle.Cantidad * solicitudDetalle.PrecioPromedio,
                                                         2) * -1).ToString("F2")),
                    Renglon      = Convert.ToString(linea++),
                    ImporteIva   = "0",
                    Ref3         = ref3.ToString(),
                    Cuenta       = claveContableAbono.CuentaSAP,
                    ArchivoFolio = archivoFolio,
                    CentroCosto  =
                        claveContableAbono.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto)
                                        ? parametroCentroCosto.Valor
                                        : string.Empty,
                    Division      = organizacion.Division,
                    PesoOrigen    = 0,
                    TipoDocumento = textoDocumento,
                    Concepto      = String.Format("{0}-{1} {2} {3} {4}",
                                                  tipoMovimiento,
                                                  solicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture),
                                                  solicitudDetalle.Producto.Descripcion,
                                                  string.Format("{0} {1}.",
                                                                solicitudDetalle.Cantidad.ToString("N2"),
                                                                solicitudDetalle.Producto.UnidadMedicion.
                                                                ClaveUnidad),
                                                  solicitudDetalle.PrecioPromedio.ToString("C2")),
                    Sociedad            = organizacion.Sociedad,
                    DescripcionProducto = claveContableAbono.Descripcion,
                    Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                };
                polizaSalida = GeneraRegistroPoliza(datos);
                polizasSalidaTraspaso.Add(polizaSalida);
            }
            return(polizasSalidaTraspaso);
        }
Exemplo n.º 28
0
 /// <summary>
 /// Obtiene parametros para obtener lista paginada
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public static Dictionary <string, object> ObtenerParametrosPorPagina(PaginacionInfo pagina, SolicitudProductoInfo filtro)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@SolicitudProductoID", filtro.SolicitudProductoID },
             { "@Activo", filtro.Activo },
             { "@Inicio", pagina.Inicio },
             { "@Limite", pagina.Limite }
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }