示例#1
0
 /// <summary>
 ///  Método que obtiene un registro
 /// </summary>
 /// <param name="ds"></param>
 /// <returns></returns>
 public static CuentaAlmacenSubFamiliaInfo ObtenerPorDescripcion(DataSet ds)
 {
     try
     {
         Logger.Info();
         DataTable dt = ds.Tables[ConstantesDAL.DtDatos];
         CuentaAlmacenSubFamiliaInfo entidad =
             (from info in dt.AsEnumerable()
              select
              new CuentaAlmacenSubFamiliaInfo
         {
             CuentaAlmacenSubFamiliaID = info.Field <int>("CuentaAlmacenSubFamiliaID"),
             Almacen = new AlmacenInfo {
                 AlmacenID = info.Field <int>("AlmacenID"), Descripcion = info.Field <string>("Almacen")
             },
             SubFamilia = new SubFamiliaInfo {
                 SubFamiliaID = info.Field <int>("SubFamiliaID"), Descripcion = info.Field <string>("SubFamilia")
             },
             CuentaSAP = new CuentaSAPInfo {
                 CuentaSAPID = info.Field <int>("CuentaSAPID"), Descripcion = info.Field <string>("CuentaSAPDescripcion"), CuentaSAP = info.Field <string>("CuentaSAP")
             },
             Activo = info.Field <bool>("Activo").BoolAEnum(),
         }).First();
         return(entidad);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad CuentaAlmacenSubFamilia
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public int Guardar(CuentaAlmacenSubFamiliaInfo info)
 {
     try
     {
         Logger.Info();
         var id = 0;
         if (info.CuentaAlmacenSubFamiliaID > 0)
         {
             id = da.Actualizar <CuentaAlmacenSubFamiliaInfo>(info);
             cuentaAlmacenSubFamiliaAccessor.ActualizarFechaModificacion(info.CuentaAlmacenSubFamiliaID);
         }
         else
         {
             id = da.Insertar <CuentaAlmacenSubFamiliaInfo>(info);
         }
         return(id);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad CuentaAlmacenSubFamilia
 /// </summary>
 /// <param name="info"></param>
 public int Guardar(CuentaAlmacenSubFamiliaInfo info)
 {
     try
     {
         Logger.Info();
         var cuentaAlmacenSubFamiliaDAL = new CuentaAlmacenSubFamiliaDAL();
         int result = info.CuentaAlmacenSubFamiliaID;
         if (info.CuentaAlmacenSubFamiliaID == 0)
         {
             result = cuentaAlmacenSubFamiliaDAL.Crear(info);
         }
         else
         {
             cuentaAlmacenSubFamiliaDAL.Actualizar(info);
         }
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
示例#4
0
 /// <summary>
 /// Obtiene un registro de CuentaAlmacenSubFamilia
 /// </summary>
 /// <param name="descripcion">Descripción de la CuentaAlmacenSubFamilia</param>
 /// <returns></returns>
 public CuentaAlmacenSubFamiliaInfo ObtenerPorDescripcion(string descripcion)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxCuentaAlmacenSubFamiliaDAL.ObtenerParametrosPorDescripcion(descripcion);
         DataSet ds = Retrieve("CuentaAlmacenSubFamilia_ObtenerPorDescripcion", parameters);
         CuentaAlmacenSubFamiliaInfo result = null;
         if (ValidateDataSet(ds))
         {
             result = MapCuentaAlmacenSubFamiliaDAL.ObtenerPorDescripcion(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);
     }
 }
示例#5
0
 /// <summary>
 /// Metodo para Crear un registro de CuentaAlmacenSubFamilia
 /// </summary>
 /// <param name="info">Valores de la entidad que será creada</param>
 public int Crear(CuentaAlmacenSubFamiliaInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxCuentaAlmacenSubFamiliaDAL.ObtenerParametrosCrear(info);
         int result = Create("CuentaAlmacenSubFamilia_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);
     }
 }
 /// <summary>
 /// Constructor para editar una entidad CuentaAlmacenSubFamilia Existente
 /// </summary>
 /// <param name="cuentaAlmacenSubFamiliaInfo"></param>
 public CuentaAlmacenSubFamiliaEdicion(CuentaAlmacenSubFamiliaInfo cuentaAlmacenSubFamiliaInfo)
 {
     InitializeComponent();
     cuentaAlmacenSubFamiliaInfo.UsuarioModificacionID = AuxConfiguracion.ObtenerUsuarioLogueado();
     Contexto = cuentaAlmacenSubFamiliaInfo;
     skAyudaAlmacen.IsEnabled    = false;
     skAyudaSubFamilia.IsEnabled = false;
 }
 /// <summary>
 /// Inicializa el Contexto
 /// </summary>
 private void InicializaContexto()
 {
     Contexto = new CuentaAlmacenSubFamiliaInfo
     {
         UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(),
         Almacen           = new AlmacenInfo
         {
             Organizacion = new OrganizacionInfo
             {
                 OrganizacionID = AuxConfiguracion.ObtenerOrganizacionUsuario()
             }
         }
     };
 }
 /// <summary>
 /// Evento que se ejecuta mientras se esta cerrando la ventana
 /// </summary>
 /// <param name="e"></param>
 protected override void OnClosing(CancelEventArgs e)
 {
     if (confirmaSalir)
     {
         MessageBoxResult result = SkMessageBox.Show(this, Properties.Resources.Msg_CerrarSinGuardar, MessageBoxButton.YesNo,
                                                     MessageImage.Question);
         if (result == MessageBoxResult.Yes)
         {
             Contexto = null;
         }
         else
         {
             e.Cancel = true;
         }
     }
 }
 /// <summary>
 /// Obtiene una entidad CuentaAlmacenSubFamilia por su descripción
 /// </summary>
 /// <param name="descripcion"></param>
 /// <returns></returns>
 public CuentaAlmacenSubFamiliaInfo ObtenerPorDescripcion(string descripcion)
 {
     try
     {
         Logger.Info();
         var cuentaAlmacenSubFamiliaDAL     = new CuentaAlmacenSubFamiliaDAL();
         CuentaAlmacenSubFamiliaInfo result = cuentaAlmacenSubFamiliaDAL.ObtenerPorDescripcion(descripcion);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Obtiene la lista para mostrar en el grid
 /// </summary>
 private void ObtenerListaCuentaAlmacenSubFamilia(int inicio, int limite)
 {
     try
     {
         if (ucPaginacion.ContextoAnterior != null)
         {
             bool contextosIguales = ucPaginacion.CompararObjetos(Contexto, ucPaginacion.ContextoAnterior);
             if (!contextosIguales)
             {
                 ucPaginacion.Inicio = 1;
                 inicio = 1;
             }
         }
         var cuentaAlmacenSubFamiliaBL       = new CuentaAlmacenSubFamiliaBL();
         CuentaAlmacenSubFamiliaInfo filtros = ObtenerFiltros();
         var pagina = new PaginacionInfo {
             Inicio = inicio, Limite = limite
         };
         ResultadoInfo <CuentaAlmacenSubFamiliaInfo> resultadoInfo = cuentaAlmacenSubFamiliaBL.ObtenerPorPagina(pagina, filtros);
         if (resultadoInfo != null && resultadoInfo.Lista != null &&
             resultadoInfo.Lista.Count > 0)
         {
             gridDatos.ItemsSource       = resultadoInfo.Lista;
             ucPaginacion.TotalRegistros = resultadoInfo.TotalRegistros;
         }
         else
         {
             ucPaginacion.TotalRegistros = 0;
             ucPaginacion.AsignarValoresIniciales();
             gridDatos.ItemsSource = new List <CuentaAlmacenSubFamilia>();
         }
     }
     catch (ExcepcionGenerica)
     {
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CuentaAlmacenSubFamilia_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CuentaAlmacenSubFamilia_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
     }
 }
示例#11
0
 /// <summary>
 /// Obtiene parametros para crear
 /// </summary>
 /// <param name="info">Valores de la entidad</param>
 /// <returns></returns>
 public static Dictionary <string, object> ObtenerParametrosCrear(CuentaAlmacenSubFamiliaInfo info)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@AlmacenID", info.Almacen.AlmacenID },
             { "@SubFamiliaID", info.SubFamilia.SubFamiliaID },
             { "@CuentaSAPID", info.CuentaSAP.CuentaSAPID },
             { "@Activo", info.Activo },
             { "@UsuarioCreacionID", info.UsuarioCreacionID },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
示例#12
0
        internal static IList <CuentaAlmacenSubFamiliaInfo> ObtenerCuentaAlmacenSubFamiliaPorAlmacen(IDataReader reader)
        {
            var lista = new List <CuentaAlmacenSubFamiliaInfo>();

            try
            {
                Logger.Info();
                CuentaAlmacenSubFamiliaInfo elemento;
                while (reader.Read())
                {
                    elemento = new CuentaAlmacenSubFamiliaInfo
                    {
                        AlmacenID    = Convert.ToInt32(reader["AlmacenID"]),
                        SubFamiliaID = Convert.ToInt32(reader["SubFamiliaID"]),
                        CuentaSAPID  = Convert.ToInt32(reader["CuentaSAPID"]),
                        Almacen      = new AlmacenInfo
                        {
                            AlmacenID = Convert.ToInt32(reader["AlmacenID"])
                        },
                        SubFamilia = new SubFamiliaInfo
                        {
                            SubFamiliaID = Convert.ToInt32(reader["SubFamiliaID"])
                        },
                        CuentaSAP = new CuentaSAPInfo
                        {
                            CuentaSAPID = Convert.ToInt32(reader["CuentaSAPID"])
                        },
                        CuentaAlmacenSubFamiliaID = Convert.ToInt32(reader["CuentaAlmacenSubFamiliaID"])
                    };
                    lista.Add(elemento);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(lista);
        }
示例#13
0
 /// <summary>
 /// Metodo para actualizar un registro de CuentaAlmacenSubFamilia
 /// </summary>
 /// <param name="info">Valores de la entidad que se actualizarán</param>
 public void Actualizar(CuentaAlmacenSubFamiliaInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxCuentaAlmacenSubFamiliaDAL.ObtenerParametrosActualizar(info);
         Update("CuentaAlmacenSubFamilia_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);
     }
 }
示例#14
0
        private IList <PolizaInfo> ObtenerPoliza(SolicitudProductoReplicaInfo solicitud)
        {
            var polizasEntradaTraspaso = new List <PolizaInfo>();

            IList <ClaseCostoProductoInfo> cuentasAlmacenProductoEntrada =
                ObtenerCostosProducto(solicitud.AlmacenDestino.AlmacenID);

            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.EntradaTraspasoSAP.GetHashCode());

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

            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;
            string numeroReferencia = ObtenerNumeroReferenciaFolio(solicitud.FolioSolicitud);

            FechaBL  fec      = new FechaBL();
            var      fechaObj = fec.ObtenerFechaActual();
            DateTime fecha    = fechaObj.FechaActual;

            string archivoFolio = ObtenerArchivoFolio(fecha);

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

            if (organizacion == null)
            {
                organizacion = new OrganizacionInfo
                {
                    TipoOrganizacion = new TipoOrganizacionInfo()
                };
            }
            IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamilia =
                ObtenerCostosSubFamilia(solicitud.AlmacenDestino.AlmacenID);

            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.Where(a => a.Activo).ToList())
            {
                CuentaSAPInfo claveContableCargo;
                afectaCosto = ValidarAfectacionCuentaCosto(solicitudDetalle.Producto);
                if (!afectaCosto && (solicitud.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() ||
                                     solicitud.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() ||
                                     solicitud.AlmacenDestino.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.AlmacenDestino.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.PrecioUnitario) <= 0)
                {
                    continue;
                }
                var datos = new DatosPolizaInfo
                {
                    NumeroReferencia = numeroReferencia,
                    FechaEntrada     = fecha,
                    Folio            = solicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture),
                    ClaseDocumento   = postFijoRef3,
                    Importe          =
                        string.Format("{0}",
                                      Math.Round(
                                          solicitudDetalle.Cantidad * solicitudDetalle.PrecioUnitario, 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.PrecioUnitario.ToString("C2")),
                    Sociedad            = organizacion.Sociedad,
                    DescripcionProducto = claveContableCargo.Descripcion,
                    Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                };
                PolizaInfo polizaSalida = GeneraRegistroPoliza(datos);
                polizasEntradaTraspaso.Add(polizaSalida);

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

                datos = new DatosPolizaInfo
                {
                    NumeroReferencia = numeroReferencia,
                    FechaEntrada     = fecha,

                    Folio          = solicitud.FolioSolicitud.ToString(CultureInfo.InvariantCulture),
                    ClaseDocumento = postFijoRef3,
                    Importe        =
                        string.Format("{0}",
                                      Math.Round((solicitudDetalle.Cantidad * solicitudDetalle.PrecioUnitario) * -1, 2).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.PrecioUnitario.ToString("C2")),
                    Sociedad            = organizacion.Sociedad,
                    DescripcionProducto = claveContableAbono.Descripcion,
                    Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                };
                polizaSalida = GeneraRegistroPoliza(datos);
                polizasEntradaTraspaso.Add(polizaSalida);
            }
            return(polizasEntradaTraspaso);
        }
示例#15
0
        private IList <PolizaInfo> ObtenerPoliza(List <ContenedorAlmacenMovimientoCierreDia> contenedor)
        {
            var polizasConsumo = new List <PolizaInfo>();
            IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP();

            int organizacionID            = contenedor[0].Almacen.Organizacion.OrganizacionID;
            int almacenID                 = contenedor[0].Almacen.AlmacenID;
            OrganizacionInfo organizacion = ObtenerOrganizacionIVA(organizacionID);
            int tipoOrigenID              = organizacion.TipoOrganizacion.TipoProceso.TipoProcesoID;

            IList <CostoInfo> costos = ObtenerCostos();

            IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamilia;

            var movimientos = contenedor.GroupBy(prod => new { prod.Producto.ProductoId, prod.Producto.Descripcion })
                              .Select(mov => new
            {
                Importe           = mov.Sum(det => det.AlmacenMovimientoDetalle.Importe),
                ProductoID        = mov.Key.ProductoId,
                Producto          = mov.Key.Descripcion,
                FechaMovimiento   = mov.Select(fech => fech.AlmacenMovimiento.FechaMovimiento).FirstOrDefault(),
                SubFamilia        = mov.Select(sf => sf.Producto.SubFamilia.Descripcion).FirstOrDefault(),
                SubFamiliaID      = mov.Select(sf => sf.Producto.SubFamilia.SubFamiliaID).FirstOrDefault(),
                Familia           = mov.Select(fam => fam.Producto.SubFamilia.Familia.Descripcion).FirstOrDefault(),
                TipoTratamientoID = mov.Select(trat => trat.AlmacenMovimientoDetalle.Tratamiento.TipoTratamientoInfo.TipoTratamientoID).FirstOrDefault(),
                TipoTratamiento   = mov.Select(trat => trat.AlmacenMovimientoDetalle.Tratamiento.TipoTratamientoInfo.Descripcion).FirstOrDefault(),
                Almacen           = mov.Select(alm => alm.Almacen.Descripcion).FirstOrDefault(),
                AlmacenID         = mov.Select(alm => alm.Almacen.AlmacenID).FirstOrDefault(),
                FolioAlmacen      = mov.Select(folio => folio.FolioAlmacen).FirstOrDefault()
            }).ToList();
            TipoPolizaInfo tipoPoliza =
                TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.ConsumoProducto.GetHashCode());

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

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

            const int TIPO_COSTO = 3;
            var       linea      = 1;

            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);

            ParametroOrganizacionInfo parametroOrganizacion =
                ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID,
                                                     ParametrosEnum.CTACENTROCOSTOENG.ToString());
            string numeroDocumento = ObtenerNumeroReferencia;

            var archivoFolio = string.Empty;
            var filtros      = new FiltroCierreDiaInventarioInfo
            {
                AlmacenID        = almacenID,
                TipoMovimientoID = TipoMovimiento.DiferenciasDeInventario.GetHashCode()
            };
            var almacenBL           = new AlmacenBL();
            int folioAlmacen        = almacenBL.ObtenerFolioAlmacenConsulta(filtros);
            var almacenMovimientoBL = new AlmacenMovimientoBL();

            almacenMovimientoBL.ActualizarFolioAlmacen(almacenID);
            if (movimientos.Any())
            {
                var folioRef = new StringBuilder();
                folioRef.Append(almacenID.ToString(CultureInfo.InvariantCulture).PadLeft(3, '0'));
                folioRef.Append(folioAlmacen.ToString(CultureInfo.InvariantCulture).PadLeft(7, '0'));
                DateTime fecha = movimientos[0].FechaMovimiento;
                archivoFolio    = ObtenerArchivoFolio(fecha);
                numeroDocumento = folioRef.ToString();

                for (var indexMovimientos = 0; indexMovimientos < movimientos.Count; indexMovimientos++)
                {
                    var       mov = movimientos[indexMovimientos];
                    string    descripcionMovimiento = ObtenerDescripcionMovimiento(mov.TipoTratamientoID);
                    CostoInfo costo =
                        costos.FirstOrDefault(
                            tipo =>
                            tipo.TipoCosto.TipoCostoID == TIPO_COSTO &&
                            tipo.Descripcion.IndexOf(descripcionMovimiento, StringComparison.InvariantCultureIgnoreCase) >=
                            0);
                    if (costo == null)
                    {
                        throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA",
                                                                  descripcionMovimiento));
                    }
                    ClaveContableInfo claveContable = ObtenerCuentaInventario(costo, organizacionID, tipoOrigenID);
                    if (claveContable == null)
                    {
                        throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO",
                                                                  costo.Descripcion));
                    }
                    var datos = new DatosPolizaInfo
                    {
                        NumeroReferencia = numeroDocumento,
                        FechaEntrada     = mov.FechaMovimiento,
                        Importe          = string.Format("{0}", mov.Importe.ToString("F2")),
                        Renglon          = Convert.ToString(linea++),
                        Division         = organizacion.Division,
                        ImporteIva       = "0",
                        ClaseDocumento   = postFijoRef3,
                        Ref3             = ref3.ToString(),
                        Cuenta           = claveContable.Valor,
                        ArchivoFolio     = archivoFolio,
                        DescripcionCosto = claveContable.Descripcion,
                        CentroCosto      =
                            claveContable.Valor.StartsWith(PrefijoCuentaCentroCosto)
                                                ? parametroOrganizacion.Valor
                                                : string.Empty,
                        PesoOrigen    = 0,
                        TipoDocumento = textoDocumento,
                        Folio         = folioAlmacen.ToString(),
                        Concepto      = String.Format("{0}-{1} {2}",
                                                      tipoMovimiento,
                                                      folioAlmacen,
                                                      mov.Producto),
                        Sociedad = organizacion.Sociedad,
                        Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                    };
                    PolizaInfo polizaConsumo = GeneraRegistroPoliza(datos);
                    polizasConsumo.Add(polizaConsumo);
                }
            }

            movimientos = contenedor.GroupBy(prod => new { prod.Producto.SubFamilia.SubFamiliaID }).Select(mov => new
            {
                Importe         = mov.Sum(det => det.AlmacenMovimientoDetalle.Importe),
                ProductoID      = 0,
                Producto        = string.Empty,
                FechaMovimiento = mov.Select(fech => fech.AlmacenMovimiento.FechaMovimiento).FirstOrDefault(),
                SubFamilia      = mov.Select(sf => sf.Producto.SubFamilia.Descripcion).FirstOrDefault(),
                mov.Key.SubFamiliaID,
                Familia           = mov.Select(fam => fam.Producto.SubFamilia.Familia.Descripcion).FirstOrDefault(),
                TipoTratamientoID = mov.Select(trat => trat.AlmacenMovimientoDetalle.Tratamiento.TipoTratamientoInfo.TipoTratamientoID).FirstOrDefault(),
                TipoTratamiento   = mov.Select(trat => trat.AlmacenMovimientoDetalle.Tratamiento.TipoTratamientoInfo.Descripcion).FirstOrDefault(),
                Almacen           = mov.Select(alm => alm.Almacen.Descripcion).FirstOrDefault(),
                AlmacenID         = mov.Select(alm => alm.Almacen.AlmacenID).FirstOrDefault(),
                FolioAlmacen      = mov.Select(folio => folio.FolioAlmacen).FirstOrDefault()
            }).ToList();
            if (movimientos != null && movimientos.Any())
            {
                CuentaSAPInfo cuentaSap;
                CuentaAlmacenSubFamiliaInfo cuentaSubFamilia;

                for (var indexMovimientos = 0; indexMovimientos < movimientos.Count; indexMovimientos++)
                {
                    var       mov = movimientos[indexMovimientos];
                    string    descripcionMovimiento = ObtenerDescripcionMovimiento(mov.TipoTratamientoID);
                    CostoInfo costo =
                        costos.FirstOrDefault(
                            tipo =>
                            tipo.TipoCosto.TipoCostoID == TIPO_COSTO &&
                            tipo.Descripcion.IndexOf(descripcionMovimiento, StringComparison.InvariantCultureIgnoreCase) >=
                            0);
                    if (costo == null)
                    {
                        costo = new CostoInfo();
                    }
                    ClaveContableInfo claveContable = ObtenerCuentaInventario(costo, organizacionID, tipoOrigenID);
                    if (claveContable == null)
                    {
                        throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACION PARA EL COSTO",
                                                                  costo.Descripcion));
                    }
                    cuentasSubFamilia = ObtenerCostosSubFamilia(mov.AlmacenID);
                    if (cuentasSubFamilia == null)
                    {
                        cuentasSubFamilia = new List <CuentaAlmacenSubFamiliaInfo>();
                    }
                    cuentaSubFamilia = cuentasSubFamilia.FirstOrDefault(clave => clave.SubFamiliaID == mov.SubFamiliaID);
                    if (cuentaSubFamilia == null)
                    {
                        cuentaSubFamilia = new CuentaAlmacenSubFamiliaInfo();
                    }
                    cuentaSap = cuentasSap.FirstOrDefault(clave => clave.CuentaSAPID == cuentaSubFamilia.CuentaSAPID);
                    if (cuentaSap == null)
                    {
                        throw new ExcepcionServicio(string.Format("CUENTA NO CONFIGURADA PARA EL PRODUCTO {0}",
                                                                  mov.Producto));
                    }
                    var datos = new DatosPolizaInfo
                    {
                        NumeroReferencia = numeroDocumento,
                        FechaEntrada     = mov.FechaMovimiento,
                        Importe          = string.Format("{0}", (mov.Importe * -1).ToString("F2")),
                        Renglon          = Convert.ToString(linea++),
                        ImporteIva       = "0",
                        ClaseDocumento   = postFijoRef3,
                        Division         = organizacion.Division,
                        Ref3             = ref3.ToString(),
                        Cuenta           = cuentaSap.CuentaSAP,
                        ArchivoFolio     = archivoFolio,
                        CentroCosto      =
                            cuentaSap.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto)
                                                ? parametroOrganizacion.Valor
                                                : string.Empty,
                        DescripcionCosto = cuentaSap.Descripcion,
                        PesoOrigen       = 0,
                        TipoDocumento    = textoDocumento,
                        ComplementoRef1  = string.Empty,
                        Folio            = folioAlmacen.ToString(),
                        Concepto         = String.Format("{0}-{1} {2}",
                                                         tipoMovimiento,
                                                         folioAlmacen,
                                                         mov.Producto),
                        Sociedad = organizacion.Sociedad,
                        Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad),
                    };
                    PolizaInfo polizaConsumo = GeneraRegistroPoliza(datos);
                    polizasConsumo.Add(polizaConsumo);
                }
            }
            return(polizasConsumo);
        }
        /// <summary>
        /// Obtiene una lista paginada de CuentaAlmacenSubFamilia
        /// </summary>
        /// <param name="pagina"></param>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public ResultadoInfo <CuentaAlmacenSubFamiliaInfo> ObtenerPorPagina(PaginacionInfo pagina, CuentaAlmacenSubFamiliaInfo filtro)
        {
            try
            {
                Logger.Info();
                ResultadoInfo <CuentaAlmacenSubFamiliaInfo> result = new ResultadoInfo <CuentaAlmacenSubFamiliaInfo>();
                var condicion = da.Tabla <CuentaAlmacenSubFamiliaInfo>().Where(e => e.Activo == filtro.Activo);
                if (filtro.CuentaAlmacenSubFamiliaID > 0)
                {
                    condicion = condicion.Where(e => e.CuentaAlmacenSubFamiliaID == filtro.CuentaAlmacenSubFamiliaID);
                }
                //if (!string.IsNullOrEmpty(filtro.CuentaAlmacenSubFamiliaID))
                //{
                //    condicion = condicion.Where(e=> e.CuentaAlmacenSubFamiliaID.Contains(filtro.CuentaAlmacenSubFamiliaID));
                //}
                result.TotalRegistros = condicion.Count();

                int inicio = pagina.Inicio;
                int limite = pagina.Limite;
                if (inicio > 1)
                {
                    int limiteReal = (limite - inicio) + 1;
                    inicio = (limite / limiteReal);
                    limite = limiteReal;
                }
                var paginado = condicion
                               .OrderBy(e => e.CuentaAlmacenSubFamiliaID)
                               .Skip((inicio - 1) * limite)
                               .Take(limite);

                result.Lista = paginado.ToList();

                return(result);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
示例#17
0
 /// <summary>
 /// Obtiene un lista paginada
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public ResultadoInfo <CuentaAlmacenSubFamiliaInfo> ObtenerPorPagina(PaginacionInfo pagina, CuentaAlmacenSubFamiliaInfo filtro)
 {
     try
     {
         Dictionary <string, object> parameters = AuxCuentaAlmacenSubFamiliaDAL.ObtenerParametrosPorPagina(pagina, filtro);
         DataSet ds = Retrieve("CuentaAlmacenSubFamilia_ObtenerPorPagina", parameters);
         ResultadoInfo <CuentaAlmacenSubFamiliaInfo> result = null;
         if (ValidateDataSet(ds))
         {
             result = MapCuentaAlmacenSubFamiliaDAL.ObtenerPorPagina(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);
     }
 }
示例#18
0
        private IList <PolizaInfo> ObtenerPoliza(TraspasoMpPaMedInfo traspasoMp)
        {
            var polizasSalidaTraspaso = new List <PolizaInfo>();

            IList <ClaseCostoProductoInfo> cuentasAlmacenProductoSalida =
                ObtenerCostosProducto(traspasoMp.AlmacenOrigen.AlmacenID);
            IList <ClaseCostoProductoInfo> cuentasAlmacenProductoEntrada =
                ObtenerCostosProducto(traspasoMp.AlmacenDestino.AlmacenID);

            if (cuentasAlmacenProductoSalida == null)
            {
                throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén origen");
            }
            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.EntradaTraspaso.GetHashCode());

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

            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);

            var almacenMovimientoBL = new AlmacenMovimientoBL();
            AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerPorId(traspasoMp.AlmacenMovimientoID);

            string numeroReferencia = ObtenerNumeroReferenciaFolio(almacenMovimiento.FolioMovimiento);
            //string numeroReferencia = ObtenerNumeroReferencia;

            DateTime fecha        = traspasoMp.FechaTraspaso;
            string   archivoFolio = ObtenerArchivoFolio(fecha);

            var organizacionBL = new OrganizacionBL();
            OrganizacionInfo organizacionOrigen = organizacionBL.ObtenerPorAlmacenID(traspasoMp.AlmacenOrigen.AlmacenID);

            if (organizacionOrigen == null)
            {
                organizacionOrigen = new OrganizacionInfo
                {
                    TipoOrganizacion = new TipoOrganizacionInfo()
                };
            }
            OrganizacionInfo organizacionDestino = organizacionBL.ObtenerPorAlmacenID(traspasoMp.AlmacenDestino.AlmacenID);

            if (organizacionDestino == null)
            {
                organizacionDestino = new OrganizacionInfo
                {
                    TipoOrganizacion = new TipoOrganizacionInfo()
                };
            }
            IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamiliaSalida =
                ObtenerCostosSubFamilia(traspasoMp.AlmacenOrigen.AlmacenID);

            IList <CuentaAlmacenSubFamiliaInfo> cuentasSubFamiliaEntrada =
                ObtenerCostosSubFamilia(traspasoMp.AlmacenDestino.AlmacenID);

            ParametroOrganizacionInfo parametroCentroCostoOrigen =
                ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID,
                                                     ParametrosEnum.CTACENTROCOSTOMP.ToString());

            if (parametroCentroCostoOrigen == null)
            {
                throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO"));
            }
            ParametroOrganizacionInfo parametroCentroCostoDestino =
                ObtenerParametroOrganizacionPorClave(organizacionDestino.OrganizacionID,
                                                     ParametrosEnum.CTACENTROCOSTOMP.ToString());

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

            afectaCosto = ValidarAfectacionCuentaCosto(traspasoMp.ProductoOrigen);
            if (!afectaCosto && (traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() ||
                                 traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() ||
                                 traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) ||
                traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.GeneralGanadera.GetHashCode())
            {
                var cuentaSapSubFamiliaEntrada = cuentasSubFamiliaEntrada.FirstOrDefault(
                    cuenta => cuenta.SubFamiliaID == traspasoMp.ProductoOrigen.SubFamilia.SubFamiliaID);

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

            if (traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode())
            {
                ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacionDestino.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}",
                                                          traspasoMp.ProductoOrigen.ProductoDescripcion));
            }
            linea = 0;
            linea++;
            var datos = new DatosPolizaInfo
            {
                NumeroReferencia = numeroReferencia,
                FechaEntrada     = fecha,
                Folio            = numeroReferencia,
                ClaseDocumento   = postFijoRef3,
                Importe          = string.Format("{0}", traspasoMp.ImporteTraspaso.ToString("F2")),
                Renglon          = Convert.ToString(linea),
                ImporteIva       = "0",
                Ref3             = ref3.ToString(),
                Cuenta           = claveContableCargo.CuentaSAP,
                CentroCosto      =
                    claveContableCargo.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto)
                        ? parametroCentroCostoDestino.Valor
                        : string.Empty,
                Division      = organizacionDestino.Division,
                ArchivoFolio  = archivoFolio,
                PesoOrigen    = 0,
                TipoDocumento = textoDocumento,
                Concepto      = String.Format("{0}-{1} {2} {3} {4}",
                                              tipoMovimiento,
                                              numeroReferencia,
                                              traspasoMp.ProductoOrigen.ProductoDescripcion,
                                              string.Format("{0} {1}.",
                                                            traspasoMp.CantidadTraspasarDestino.ToString("N2"),
                                                            traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad),
                                              traspasoMp.PrecioTraspasoDestino.ToString("C2")),
                Sociedad            = organizacionDestino.Sociedad,
                DescripcionProducto = claveContableCargo.Descripcion,
                Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacionDestino.Sociedad),
            };
            PolizaInfo polizaSalida = GeneraRegistroPoliza(datos);

            polizasSalidaTraspaso.Add(polizaSalida);

            #region CuentaAbono

            CuentaSAPInfo claveContableAbono = null;
            afectaCosto = ValidarAfectacionCuentaCosto(traspasoMp.ProductoOrigen);
            if (!afectaCosto && (traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() ||
                                 traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() ||
                                 traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) ||
                traspasoMp.AlmacenDestino.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.GeneralGanadera.GetHashCode())
            {
                var cuentaSapSubFamiliaSalida = cuentasSubFamiliaSalida.FirstOrDefault(
                    cuenta => cuenta.SubFamiliaID == traspasoMp.ProductoOrigen.SubFamilia.SubFamiliaID);

                if (cuentaSapSubFamiliaSalida == null)
                {
                    cuentaSapSubFamiliaSalida = new CuentaAlmacenSubFamiliaInfo();
                }
                claveContableAbono =
                    cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSubFamiliaSalida.CuentaSAPID);
            }
            else
            {
                var cuentaSapSalida = cuentasAlmacenProductoSalida.FirstOrDefault(
                    cuenta => cuenta.ProductoID == traspasoMp.ProductoOrigen.ProductoId);
                if (cuentaSapSalida == null)
                {
                    cuentaSapSalida = new ClaseCostoProductoInfo();
                }
                claveContableAbono =
                    cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapSalida.CuentaSAPID);
            }

            if (traspasoMp.AlmacenOrigen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.CentroAcopio.GetHashCode())
            {
                ParametroOrganizacionInfo cuentaMedicamento = ObtenerParametroOrganizacionPorClave(organizacionOrigen.OrganizacionID,
                                                                                                   ParametrosEnum.CuentaMedicamentoTransito.ToString());

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

                claveContableAbono =
                    cuentasSap.FirstOrDefault(
                        sap =>
                        sap.CuentaSAP.Equals(cuentaMedicamento.Valor, StringComparison.InvariantCultureIgnoreCase));
            }
            if (claveContableAbono == null)
            {
                throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}",
                                                          traspasoMp.ProductoOrigen.ProductoDescripcion));
            }
            #endregion CuentaAbono

            linea++;
            datos = new DatosPolizaInfo
            {
                NumeroReferencia = numeroReferencia,
                FechaEntrada     = fecha,
                Folio            = numeroReferencia,
                ClaseDocumento   = postFijoRef3,
                Importe          =
                    string.Format("{0}", (traspasoMp.ImporteTraspaso * -1).ToString("F2")),
                Renglon      = Convert.ToString(linea),
                ImporteIva   = "0",
                Ref3         = ref3.ToString(),
                Cuenta       = claveContableAbono.CuentaSAP,
                ArchivoFolio = archivoFolio,
                CentroCosto  =
                    claveContableAbono.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto)
                        ? parametroCentroCostoOrigen.Valor
                        : string.Empty,
                Division      = organizacionOrigen.Division,
                PesoOrigen    = 0,
                TipoDocumento = textoDocumento,
                Concepto      = String.Format("{0}-{1} {2} {3} {4}",
                                              tipoMovimiento,
                                              numeroReferencia,
                                              traspasoMp.ProductoOrigen.ProductoDescripcion,
                                              string.Format("{0} {1}.",
                                                            traspasoMp.CantidadTraspasarOrigen.ToString("N2"),
                                                            traspasoMp.ProductoOrigen.UnidadMedicion.ClaveUnidad),
                                              traspasoMp.PrecioTraspasoOrigen.ToString("C2")),
                Sociedad            = organizacionOrigen.Sociedad,
                DescripcionProducto = claveContableAbono.Descripcion,
                Segmento            = string.Format("{0}{1}", PrefijoSegmento, organizacionOrigen.Sociedad),
            };
            polizaSalida = GeneraRegistroPoliza(datos);
            polizasSalidaTraspaso.Add(polizaSalida);

            return(polizasSalidaTraspaso);
        }
 /// <summary>
 /// Obtiene un lista paginada
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public ResultadoInfo <CuentaAlmacenSubFamiliaInfo> ObtenerPorPagina(PaginacionInfo pagina, CuentaAlmacenSubFamiliaInfo filtro)
 {
     try
     {
         Logger.Info();
         var cuentaAlmacenSubFamiliaDAL = new CuentaAlmacenSubFamiliaDAL();
         ResultadoInfo <CuentaAlmacenSubFamiliaInfo> result = cuentaAlmacenSubFamiliaDAL.ObtenerPorPagina(pagina, filtro);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        /// <summary>
        /// Metodo que valida los datos para guardar
        /// </summary>
        /// <returns></returns>
        private bool ValidaGuardar()
        {
            bool   resultado = true;
            string mensaje   = string.Empty;

            try
            {
                if (string.IsNullOrWhiteSpace(txtCuentaAlmacenSubFamiliaID.Text))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgCuentaAlmacenSubFamiliaIDRequerida;
                    txtCuentaAlmacenSubFamiliaID.Focus();
                }
                else if (Contexto.Almacen == null || Contexto.Almacen.AlmacenID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgAlmacenIDRequerida;
                    skAyudaAlmacen.AsignarFoco();
                }
                else if (Contexto.SubFamilia == null || Contexto.SubFamilia.SubFamiliaID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgSubFamiliaIDRequerida;
                    skAyudaSubFamilia.AsignarFoco();
                }
                else if (Contexto.CuentaSAP == null || Contexto.CuentaSAP.CuentaSAPID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgCuentaSAPIDRequerida;
                    skAyudaCuentaSAP.AsignarFoco();
                }
                else if (cmbActivo.SelectedItem == null)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgActivoRequerida;
                    cmbActivo.Focus();
                }
                else
                {
                    int cuentaAlmacenSubFamiliaId = Extensor.ValorEntero(txtCuentaAlmacenSubFamiliaID.Text);

                    var cuentaAlmacenSubFamiliaBL = new CuentaAlmacenSubFamiliaBL();
                    IList <CuentaAlmacenSubFamiliaInfo> cuentasAlmacen = cuentaAlmacenSubFamiliaBL.ObtenerCostosSubFamilia(Contexto.Almacen.AlmacenID);

                    CuentaAlmacenSubFamiliaInfo cuentaAlmacenSubFamilia =
                        cuentasAlmacen.FirstOrDefault(
                            cuenta => cuenta.SubFamilia.SubFamiliaID == Contexto.SubFamilia.SubFamiliaID);

                    if (cuentaAlmacenSubFamilia != null && (cuentaAlmacenSubFamiliaId == 0 || cuentaAlmacenSubFamiliaId != cuentaAlmacenSubFamilia.CuentaAlmacenSubFamiliaID))
                    {
                        resultado = false;
                        mensaje   = string.Format(Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgDescripcionExistente, cuentaAlmacenSubFamilia.CuentaAlmacenSubFamiliaID);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(resultado);
        }
示例#21
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, CuentaAlmacenSubFamiliaInfo filtro)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@CuentaAlmacenSubFamiliaID", filtro.CuentaAlmacenSubFamiliaID },
             { "@AlmacenID", filtro.Almacen.AlmacenID },
             { "@Activo", filtro.Activo },
             { "@Inicio", pagina.Inicio },
             { "@Limite", pagina.Limite }
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }