Esempio n. 1
0
 /// <summary>
 /// Inicializa el Contexto
 /// </summary>
 private void InicializaContexto()
 {
     Contexto = new CentroCostoInfo
     {
         UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(),
     };
 }
Esempio n. 2
0
        /// <summary>
        /// Obtiene la informacion del centro de costo sap por costo id
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        internal CentroCostoInfo ObtenerCentroCostoSAPPorCosto(CostoInfo filtro)
        {
            CentroCostoInfo result = null;

            try
            {
                Logger.Info();
                Dictionary <string, object> parameters = AuxCostoDAL.ObtenerParametroCentroCostoSAPPorCosto(filtro);
                DataSet ds = Retrieve("[dbo].[Costo_ObtenerCentroCostoSAPPorCosto]", parameters);
                if (ValidateDataSet(ds))
                {
                    result = MapCostoDAL.ObtenerCentroCostoSAPPorCosto(ds);
                }
            }
            catch (SqlException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (DataException ex)
            {
                Logger.Error(ex);
                throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
Esempio n. 3
0
 /// <summary>
 ///  Método que obtiene un registro
 /// </summary>
 /// <param name="ds"></param>
 /// <returns></returns>
 public static CentroCostoInfo ObtenerPorID(DataSet ds)
 {
     try
     {
         Logger.Info();
         DataTable       dt      = ds.Tables[ConstantesDAL.DtDatos];
         CentroCostoInfo entidad =
             (from info in dt.AsEnumerable()
              select
              new CentroCostoInfo
         {
             CentroCostoID = info.Field <int>("CentroCostoID"),
             CentroCostoSAP = info.Field <string>("CentroCostoSAP"),
             Descripcion = info.Field <string>("Descripcion"),
             AreaDepartamento = info.Field <string>("AreaDepartamento"),
             Activo = info.Field <bool>("Activo").BoolAEnum(),
         }).First();
         return(entidad);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Esempio n. 4
0
 /// <summary>
 /// Obtiene la lista para mostrar en el grid
 /// </summary>
 private void ObtenerListaCentroCosto(int inicio, int limite)
 {
     try
     {
         var             centroCostoBL = new CentroCostoBL();
         CentroCostoInfo filtros       = ObtenerFiltros();
         var             pagina        = new PaginacionInfo {
             Inicio = inicio, Limite = limite
         };
         ResultadoInfo <CentroCostoInfo> resultadoInfo = centroCostoBL.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 <CentroCosto>();
         }
     }
     catch (ExcepcionGenerica)
     {
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CentroCosto_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CentroCosto_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad CentroCosto
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public int Guardar(CentroCostoInfo info)
 {
     try
     {
         Logger.Info();
         var id = 0;
         if (info.CentroCostoID > 0)
         {
             info.FechaModificacion = da.FechaServidor();
             id = da.Actualizar <CentroCostoInfo>(info);
         }
         else
         {
             id = da.Insertar <CentroCostoInfo>(info);
         }
         return(id);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Esempio n. 6
0
 /// <summary>
 /// Obtiene un registro de CentroCosto
 /// </summary>
 /// <param name="descripcion">Descripción de la CentroCosto</param>
 /// <returns></returns>
 public CentroCostoInfo ObtenerPorDescripcion(string descripcion)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxCentroCostoDAL.ObtenerParametrosPorDescripcion(descripcion);
         DataSet         ds     = Retrieve("CentroCosto_ObtenerPorDescripcion", parameters);
         CentroCostoInfo result = null;
         if (ValidateDataSet(ds))
         {
             result = MapCentroCostoDAL.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);
     }
 }
Esempio n. 7
0
 /// <summary>
 /// Metodo para Crear un registro de CentroCosto
 /// </summary>
 /// <param name="info">Valores de la entidad que será creada</param>
 public int Crear(CentroCostoInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxCentroCostoDAL.ObtenerParametrosCrear(info);
         int result = Create("CentroCosto_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);
     }
 }
Esempio n. 8
0
 /// <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;
         }
     }
 }
Esempio n. 9
0
        private void CargarCentrosCosto(IList <CamionRepartoInfo> lista)
        {
            var centroCostoDAL = new CentroCostoDAL();
            IList <CentroCostoInfo> listaCentroCostos = centroCostoDAL.ObtenerTodos(EstatusEnum.Activo).ToList();

            foreach (var camionReparto in lista)
            {
                CentroCostoInfo centroCosto =
                    listaCentroCostos.FirstOrDefault(centro => centro.CentroCostoID == camionReparto.CentroCostoID);
                if (centroCosto == null)
                {
                    continue;
                }
                camionReparto.CentroCosto = centroCosto;
            }
        }
Esempio n. 10
0
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad CentroCosto
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public int Guardar(CentroCostoInfo info)
 {
     try
     {
         Logger.Info();
         return(centroCostoDAL.Guardar(info));
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Esempio n. 11
0
 /// <summary>
 /// Obtiene una lista de CentroCosto
 /// </summary>
 /// <returns></returns>
 public IQueryable <CentroCostoInfo> ObtenerPorAutorizador(CentroCostoInfo filtro)
 {
     try
     {
         Logger.Info();
         var result =
             centroCostoAccessor.ObtenerPorAutorizador(filtro.CentroCostoID, filtro.AutorizadorID).AsQueryable();
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Esempio n. 12
0
 /// <summary>
 /// Obtiene una entidad de CentroCosto por su CentroCostoSAP
 /// </summary>
 /// <param name="centroCosto">Obtiene una entidad CentroCosto por su cuenta contable</param>
 /// <returns></returns>
 public CentroCostoInfo ObtenerPorCentroCostoSAP(CentroCostoInfo centroCosto)
 {
     try
     {
         Logger.Info();
         centroCosto.CentroCostoSAP = centroCosto.CentroCostoSAP.PadLeft(6, '0');
         var query   = ObtenerTodos().Where(c => c.CentroCostoSAP == centroCosto.CentroCostoSAP);
         var results = query.ToList();
         return(results.FirstOrDefault());
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Esempio n. 13
0
        /// <summary>
        /// Obtiene el centro de costo sap asociado a un tipo de costo
        /// </summary>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public CentroCostoInfo ObtenerCentroCostoSAPPorCosto(CostoInfo filtro)
        {
            CentroCostoInfo retValue = null;

            try
            {
                Logger.Info();
                var costoBL = new CostoBL();
                retValue = costoBL.ObtenerCentroCostoSAPPorCosto(filtro);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            return(retValue);
        }
Esempio n. 14
0
 /// <summary>
 /// Obtiene parametros para crear
 /// </summary>
 /// <param name="info">Valores de la entidad</param>
 /// <returns></returns>
 public static Dictionary <string, object> ObtenerParametrosCrear(CentroCostoInfo info)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@CentroCostoSAP", info.CentroCostoSAP },
             { "@Descripcion", info.Descripcion },
             { "@AreaDepartamento", info.AreaDepartamento },
             { "@Activo", info.Activo },
             { "@UsuarioCreacionID", info.UsuarioCreacionID },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Esempio n. 15
0
        /// <summary>
        /// Obtiene una entidad de CentroCosto por su Id
        /// </summary>
        /// <param name="centroCosto">Obtiene una entidad CentroCosto por su Id</param>
        /// <returns></returns>
        public CentroCostoInfo ObtenerPorCentroCostoSAP(CentroCostoInfo centroCosto)
        {
            try
            {
                Logger.Info();

                if (string.IsNullOrWhiteSpace(centroCosto.CentroCostoSAP))
                {
                    centroCosto.CentroCostoSAP = centroCosto.Descripcion;
                }

                return(centroCostoDAL.ObtenerPorCentroCostoSAP(centroCosto));
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Esempio n. 16
0
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad CentroCostoAutorizador
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public void GuardarCentroCostoUsuarioLista(CentroCostoInfo info)
 {
     try
     {
         Logger.Info();
         using (var scope = new TransactionScope())
         {
             foreach (var centroCostoUsuario in info.ListaCentroCostoUsuario)
             {
                 centroCostoUsuarioDAL.Guardar(centroCostoUsuario);
             }
             scope.Complete();
         }
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Esempio n. 17
0
        /// <summary>
        /// Mapea los datos den centro de costo perteneciente al tipo de costo dado
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        internal static CentroCostoInfo ObtenerCentroCostoSAPPorCosto(DataSet ds)
        {
            CentroCostoInfo retVal = null;

            try
            {
                Logger.Info();
                DataTable dt = ds.Tables[ConstantesDAL.DtDatos];

                retVal = (from centro in dt.AsEnumerable()
                          select new CentroCostoInfo
                {
                    CentroCostoID = centro.Field <int>("CentroCostoID"),
                    CentroCostoSAP = centro.Field <string>("CentroCostoSAP").Trim(),
                    Descripcion = centro.Field <string>("Descripcion").Trim(),
                }).First();
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(retVal);
        }
Esempio n. 18
0
 /// <summary>
 /// Metodo para actualizar un registro de CentroCosto
 /// </summary>
 /// <param name="info">Valores de la entidad que se actualizarán</param>
 public void Actualizar(CentroCostoInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxCentroCostoDAL.ObtenerParametrosActualizar(info);
         Update("CentroCosto_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);
     }
 }
Esempio n. 19
0
 /// <summary>
 /// Constructor para editar una entidad CentroCosto Existente
 /// </summary>
 /// <param name="centroCostoInfo"></param>
 public CentroCostoEdicion(CentroCostoInfo centroCostoInfo)
 {
     InitializeComponent();
     centroCostoInfo.UsuarioModificacionID = AuxConfiguracion.ObtenerUsuarioLogueado();
     Contexto = centroCostoInfo;
 }
Esempio n. 20
0
 /// <summary>
 /// Obtiene un lista paginada
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public ResultadoInfo <CentroCostoInfo> ObtenerPorPagina(PaginacionInfo pagina, CentroCostoInfo filtro)
 {
     try
     {
         Dictionary <string, object> parameters = AuxCentroCostoDAL.ObtenerParametrosPorPagina(pagina, filtro);
         DataSet ds = Retrieve("CentroCosto_ObtenerPorPagina", parameters);
         ResultadoInfo <CentroCostoInfo> result = null;
         if (ValidateDataSet(ds))
         {
             result = MapCentroCostoDAL.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);
     }
 }
Esempio n. 21
0
 /// <summary>
 /// Obtiene una lista paginada de CentroCosto
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public ResultadoInfo <CentroCostoInfo> ObtenerPorPagina(PaginacionInfo pagina, CentroCostoInfo filtro)
 {
     try
     {
         Logger.Info();
         return(centroCostoDAL.ObtenerPorPagina(pagina, filtro));
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Esempio n. 22
0
        /// <summary>
        /// Obtiene una lista paginada de CentroCosto
        /// </summary>
        /// <param name="pagina"></param>
        /// <param name="filtro"></param>
        /// <returns></returns>
        public ResultadoInfo <CentroCostoInfo> ObtenerPorPagina(PaginacionInfo pagina, CentroCostoInfo filtro)
        {
            try
            {
                Logger.Info();
                var result    = new ResultadoInfo <CentroCostoInfo>();
                var condicion = da.Tabla <CentroCostoInfo>();

                //if(filtro.AutorizadorID > 0)
                //{
                //    condicion = centroCostoAccessor.ObtenerPorAutorizador(filtro.CentroCostoID, filtro.AutorizadorID).AsQueryable();
                //}

                condicion = condicion.Where(e => e.Activo == filtro.Activo);

                if (filtro.CentroCostoID > 0)
                {
                    condicion = condicion.Where(e => e.CentroCostoID == filtro.CentroCostoID);
                }
                if (!string.IsNullOrEmpty(filtro.Descripcion))
                {
                    condicion = condicion.Where(e => e.Descripcion.Contains(filtro.Descripcion));
                }
                if (!string.IsNullOrEmpty(filtro.CentroCostoSAP))
                {
                    condicion = condicion.Where(e => e.CentroCostoSAP.Contains(filtro.CentroCostoSAP));
                }
                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.Descripcion)
                               .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);
            }
        }
Esempio n. 23
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);
        }
Esempio n. 24
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, CentroCostoInfo filtro)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@CentroCostoID", filtro.CentroCostoID },
             { "@Descripcion", filtro.Descripcion },
             { "@Activo", filtro.Activo },
             { "@Inicio", pagina.Inicio },
             { "@Limite", pagina.Limite }
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }