/// <summary> /// Método que obtiene un registro /// </summary> /// <param name="ds"></param> /// <returns></returns> public static ClaseCostoProductoInfo ObtenerPorDescripcion(DataSet ds) { try { Logger.Info(); DataTable dt = ds.Tables[ConstantesDAL.DtDatos]; ClaseCostoProductoInfo entidad = (from info in dt.AsEnumerable() select new ClaseCostoProductoInfo { ClaseCostoProductoID = info.Field <int>("ClaseCostoProductoID"), Almacen = new AlmacenInfo { AlmacenID = info.Field <int>("AlmacenID"), Descripcion = info.Field <string>("Almacen") }, Producto = new ProductoInfo { ProductoId = info.Field <int>("ProductoID"), Descripcion = info.Field <string>("Producto") }, CuentaSAP = new CuentaSAPInfo { CuentaSAPID = info.Field <int>("CuentaSAPID"), Descripcion = 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 Crear un registro de ClaseCostoProducto /// </summary> /// <param name="info">Valores de la entidad que será creada</param> public int Crear(ClaseCostoProductoInfo info) { try { Logger.Info(); Dictionary <string, object> parameters = AuxClaseCostoProductoDAL.ObtenerParametrosCrear(info); int result = Create("ClaseCostoProducto_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> /// Obtiene un registro de ClaseCostoProducto /// </summary> /// <param name="descripcion">Descripción de la ClaseCostoProducto</param> /// <returns></returns> public ClaseCostoProductoInfo ObtenerPorDescripcion(string descripcion) { try { Logger.Info(); Dictionary <string, object> parameters = AuxClaseCostoProductoDAL.ObtenerParametrosPorDescripcion(descripcion); DataSet ds = Retrieve("ClaseCostoProducto_ObtenerPorDescripcion", parameters); ClaseCostoProductoInfo result = null; if (ValidateDataSet(ds)) { result = MapClaseCostoProductoDAL.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); } }
/// <summary> /// Metodo para Guardar/Modificar una entidad ClaseCostoProducto /// </summary> /// <param name="info"></param> /// <returns></returns> public int Guardar(ClaseCostoProductoInfo info) { try { Logger.Info(); var id = 0; if (info.ClaseCostoProductoID > 0) { info.FechaCreacion = da.FechaServidor(); id = da.Actualizar <ClaseCostoProductoInfo>(info); } else { id = da.Insertar <ClaseCostoProductoInfo>(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 ClaseCostoProducto /// </summary> /// <param name="info"></param> public int Guardar(ClaseCostoProductoInfo info) { try { Logger.Info(); var claseCostoProductoDAL = new ClaseCostoProductoDAL(); int result = info.ClaseCostoProductoID; if (info.ClaseCostoProductoID == 0) { result = claseCostoProductoDAL.Crear(info); } else { claseCostoProductoDAL.Actualizar(info); } return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Constructor /// </summary> /// <param name="info"></param> /// <param name="cuentaSAP"></param> public ClaseCostoProductoInfo(ClaseCostoProductoInfo info, CuentaSAPInfo cuentaSAP) { ClaseCostoProductoID = info.ClaseCostoProductoID; AlmacenID = info.AlmacenID; ProductoID = info.ProductoID; CuentaSAPID = info.CuentaSAPID; Activo = info.Activo; FechaCreacion = info.FechaCreacion; UsuarioCreacionID = info.UsuarioCreacionID; FechaModificacion = info.FechaModificacion; UsuarioModificacionID = info.UsuarioModificacionID; CuentaSAP = cuentaSAP; }
/// <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 la información de la CostoProducto de acuerdo al almacen y producto /// </summary> /// <param name="almacenID">Identificador del almacen donde se encuentra la mercancia del producto</param> /// <param name="producto">Identificacador del producto</param> /// <returns>ClaseCostoProductoInfo</returns> public ClaseCostoProductoInfo ObtenerCostoAlmacenProducto(int almacenID, int producto) { ClaseCostoProductoInfo costo = null; try { Logger.Info(); var costoProductoBL = new ClaseCostoProductoBL(); costo = costoProductoBL.ObtenerPorProductoAlmacen(producto, almacenID); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(costo); }
/// <summary> /// Inicializa el Contexto /// </summary> private void InicializaContexto() { Contexto = new ClaseCostoProductoInfo { UsuarioCreacionID = AuxConfiguracion.ObtenerUsuarioLogueado(), CuentaSAP = new CuentaSAPInfo(), Almacen = new AlmacenInfo { Organizacion = new OrganizacionInfo { OrganizacionID = AuxConfiguracion.ObtenerOrganizacionUsuario(), }, TipoAlmacen = new TipoAlmacenInfo() }, Producto = new ProductoInfo() }; }
/// <summary> /// Obtiene una entidad de ClaseCostoProducto por producto y almacén /// </summary> /// <param name="productoId"></param> /// <param name="almacenId"></param> /// <returns></returns> public ClaseCostoProductoInfo ObtenerPorProductoAlmacen(int productoId, int almacenId) { try { Logger.Info(); var claseCostoProductoDAL = new Integracion.DAL.Implementacion.ClaseCostoProductoDAL(); ClaseCostoProductoInfo result = claseCostoProductoDAL.ObtenerPorProductoAlmacen(productoId, almacenId); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una entidad ClaseCostoProducto por su descripción /// </summary> /// <param name="descripcion"></param> /// <returns></returns> public ClaseCostoProductoInfo ObtenerPorDescripcion(string descripcion) { try { Logger.Info(); var claseCostoProductoDAL = new ClaseCostoProductoDAL(); ClaseCostoProductoInfo result = claseCostoProductoDAL.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 ObtenerListaClaseCostoProducto(int inicio, int limite) { try { if (ucPaginacion.ContextoAnterior != null) { bool contextosIguales = ucPaginacion.CompararObjetos(Contexto, ucPaginacion.ContextoAnterior); if (!contextosIguales) { ucPaginacion.Inicio = 1; inicio = 1; } } var claseCostoProductoBL = new ClaseCostoProductoBL(); ClaseCostoProductoInfo filtros = ObtenerFiltros(); var pagina = new PaginacionInfo { Inicio = inicio, Limite = limite }; ResultadoInfo <ClaseCostoProductoInfo> resultadoInfo = claseCostoProductoBL.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 <ClaseCostoProducto>(); } } catch (ExcepcionGenerica) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ClaseCostoProducto_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error); } catch (Exception ex) { Logger.Error(ex); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ClaseCostoProducto_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error); } }
/// <summary> /// Obtiene una clase producto /// </summary> /// <param name="reader"></param> /// <returns></returns> internal static ClaseCostoProductoInfo ObtenerClaseCostoPorProductoAlmacen(IDataReader reader) { try { Logger.Info(); ClaseCostoProductoInfo elemento = null; while (reader.Read()) { elemento = new ClaseCostoProductoInfo { AlmacenID = Convert.ToInt32(reader["AlmacenID"]), ProductoID = Convert.ToInt32(reader["ProductoID"]), CuentaSAPID = Convert.ToInt32(reader["CuentaSAPID"]), Almacen = new AlmacenInfo { AlmacenID = Convert.ToInt32(reader["AlmacenID"]) }, Producto = new ProductoInfo { ProductoId = Convert.ToInt32(reader["ProductoID"]) }, CuentaSAP = new CuentaSAPInfo { CuentaSAPID = Convert.ToInt32(reader["CuentaSAPID"]), Descripcion = Convert.ToString(reader["CuentaSAPDescripcion"]), CuentaSAP = Convert.ToString(reader["CuentaSAP"]), Activo = Convert.ToBoolean(reader["Activo"]).BoolAEnum() }, ClaseCostoProductoID = Convert.ToInt32(reader["ClaseCostoProductoID"]), Activo = Convert.ToBoolean(reader["CuentaSAPActivo"]).BoolAEnum() }; } return(elemento); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene el producto por almacen /// </summary> /// <param name="productoId"></param> /// <param name="almacenId"></param> /// <returns></returns> internal ClaseCostoProductoInfo ObtenerPorProductoAlmacen(int productoId, int almacenId) { try { Logger.Info(); Dictionary <string, object> parameters = AuxClaseCostoProductoDAL.ObtenerParametrosPorProductoAlmacen(productoId, almacenId); using (IDataReader reader = RetrieveReader("ClaseCostoProducto_ObtenerPorProductoAlmacen", parameters)) { ClaseCostoProductoInfo result = null; if (ValidateDataReader(reader)) { result = MapClaseCostoProductoDAL.ObtenerClaseCostoPorProductoAlmacen(reader); } 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); } finally { if (Connection.State == ConnectionState.Open) { Connection.Close(); } } }
internal static IList <ClaseCostoProductoInfo> ObtenerClaseCostoProductoPorAlmacen(IDataReader reader) { var lista = new List <ClaseCostoProductoInfo>(); try { Logger.Info(); ClaseCostoProductoInfo elemento; while (reader.Read()) { elemento = new ClaseCostoProductoInfo { AlmacenID = Convert.ToInt32(reader["AlmacenID"]), ProductoID = Convert.ToInt32(reader["ProductoID"]), CuentaSAPID = Convert.ToInt32(reader["CuentaSAPID"]), Almacen = new AlmacenInfo { AlmacenID = Convert.ToInt32(reader["AlmacenID"]) }, Producto = new ProductoInfo { ProductoId = Convert.ToInt32(reader["ProductoID"]) }, CuentaSAP = new CuentaSAPInfo { CuentaSAPID = Convert.ToInt32(reader["CuentaSAPID"]) }, ClaseCostoProductoID = Convert.ToInt32(reader["ClaseCostoProductoID"]) }; lista.Add(elemento); } } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(lista); }
/// <summary> /// Metodo para actualizar un registro de ClaseCostoProducto /// </summary> /// <param name="info">Valores de la entidad que se actualizarán</param> public void Actualizar(ClaseCostoProductoInfo info) { try { Logger.Info(); Dictionary <string, object> parameters = AuxClaseCostoProductoDAL.ObtenerParametrosActualizar(info); Update("ClaseCostoProducto_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); } }
/// <summary> /// Obtiene un lista paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <ClaseCostoProductoInfo> ObtenerPorPagina(PaginacionInfo pagina, ClaseCostoProductoInfo filtro) { try { Logger.Info(); var claseCostoProductoDAL = new ClaseCostoProductoDAL(); ResultadoInfo <ClaseCostoProductoInfo> result = claseCostoProductoDAL.ObtenerPorPagina(pagina, filtro); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una lista paginada de ClaseCostoProducto /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <ClaseCostoProductoInfo> ObtenerPorPagina(PaginacionInfo pagina, ClaseCostoProductoInfo filtro) { try { Logger.Info(); var result = new ResultadoInfo <ClaseCostoProductoInfo>(); var condicion = da.Tabla <ClaseCostoProductoInfo>().Where(e => e.Activo == filtro.Activo); if (filtro.ClaseCostoProductoID > 0) { condicion = condicion.Where(e => e.ClaseCostoProductoID == filtro.ClaseCostoProductoID); } 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.ClaseCostoProductoID) .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); } }
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); }
/// <summary> /// Obtiene un lista paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <ClaseCostoProductoInfo> ObtenerPorPagina(PaginacionInfo pagina, ClaseCostoProductoInfo filtro) { try { Dictionary <string, object> parameters = AuxClaseCostoProductoDAL.ObtenerParametrosPorPagina(pagina, filtro); DataSet ds = Retrieve("ClaseCostoProducto_ObtenerPorPagina", parameters); ResultadoInfo <ClaseCostoProductoInfo> result = null; if (ValidateDataSet(ds)) { result = MapClaseCostoProductoDAL.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); } }
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); }
private IList <PolizaInfo> ObtenerPoliza(ContenedorEntradaMateriaPrimaInfo premezcla) { var polizaPremezcla = new List <PolizaInfo>(); OrganizacionInfo organizacion = ObtenerOrganizacionIVA(premezcla.EntradaProducto.Organizacion.OrganizacionID); IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP(); IList <UnidadMedicionInfo> unidadesMedicion = ObtenerUnidadesMedicion(); TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.PolizaSubProducto.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.PolizaSubProducto)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; IList <ClaseCostoProductoInfo> clasesCostoProducto = ObtenerCostosProducto(premezcla.EntradaProducto.AlmacenMovimiento.Almacen.AlmacenID); ProductoInfo producto; PremezclaDetalleInfo premezclaDetalle; DatosPolizaInfo datos; int folio = premezcla.EntradaProducto.Folio; DateTime fecha = premezcla.EntradaProducto.Fecha; var renglon = 0; int milisegundo = DateTime.Now.Millisecond; var ref3 = new StringBuilder(); ref3.Append("03"); ref3.Append(Convert.ToString(folio).PadLeft(10, ' ')); ref3.Append(new Random(10).Next(10, 20)); ref3.Append(new Random(30).Next(30, 40)); ref3.Append(milisegundo); ref3.Append(postFijoRef3); string archivoFolio = ObtenerArchivoFolio(fecha); string unidad; //string numeroReferencia = string.Format("{0}{1}", folio, ObtenerNumeroReferencia); string numeroReferencia = ObtenerNumeroReferenciaFolio(folio); ClaseCostoProductoInfo costoProducto; CuentaSAPInfo cuentaSap; PolizaInfo poliza; decimal importe = 0; decimal importeDetalle = 0; for (var index = 0; index < premezcla.EntradaProducto.PremezclaInfo.ListaPremezclaDetalleInfos.Count; index++) { premezclaDetalle = premezcla.EntradaProducto.PremezclaInfo.ListaPremezclaDetalleInfos[index]; producto = premezclaDetalle.Producto; unidad = unidadesMedicion.Where(clave => clave.UnidadID == producto.UnidadMedicion.UnidadID).Select( uni => uni.ClaveUnidad).FirstOrDefault(); costoProducto = clasesCostoProducto.FirstOrDefault(clave => clave.ProductoID == producto.ProductoId); if (costoProducto == null) { costoProducto = new ClaseCostoProductoInfo(); } cuentaSap = cuentasSap.FirstOrDefault(cuenta => cuenta.CuentaSAPID == costoProducto.CuentaSAPID); if (cuentaSap == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "NO HAY CONFIGURACION PARA EL PRODUCTO", producto.Descripcion)); } importeDetalle = premezclaDetalle.Kilogramos * premezclaDetalle.Lote.PrecioPromedio; importe += importeDetalle; renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = folio.ToString(), Importe = string.Format("{0}", (importeDetalle * -1). ToString("F2")), IndicadorImpuesto = String.Empty, Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSap.CuentaSAP, ArchivoFolio = archivoFolio, DescripcionCosto = producto.Descripcion, PesoOrigen = Math.Round(premezclaDetalle.Kilogramos, 2), Division = organizacion.Division, TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1} {2} {3} {4} ${5} {6}", tipoMovimiento, folio, premezclaDetalle.Kilogramos.ToString("N2"), unidad, producto.Descripcion, (importeDetalle).ToString("F2"), postFijoRef3), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad) }; poliza = GeneraRegistroPoliza(datos); polizaPremezcla.Add(poliza); } producto = premezcla.EntradaProducto.Producto; var productoBL = new ProductoBL(); producto = productoBL.ObtenerPorID(producto); unidad = unidadesMedicion.Where(clave => clave.UnidadID == producto.UnidadMedicion.UnidadID).Select( uni => uni.ClaveUnidad).FirstOrDefault(); costoProducto = clasesCostoProducto.FirstOrDefault(clave => clave.ProductoID == producto.ProductoId); if (costoProducto == null) { costoProducto = new ClaseCostoProductoInfo(); } cuentaSap = cuentasSap.FirstOrDefault(clave => clave.CuentaSAPID == costoProducto.CuentaSAPID); if (cuentaSap == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "NO HAY CONFIGURACION PARA EL PRODUCTO", producto.Descripcion)); } decimal peso = premezcla.EntradaProducto.PremezclaInfo.ListaPremezclaDetalleInfos.Sum( pre => Math.Abs(pre.Kilogramos)); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = fecha, Folio = folio.ToString(), Importe = string.Format("{0}", (importe).ToString("F2")), IndicadorImpuesto = String.Empty, Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSap.CuentaSAP, ArchivoFolio = archivoFolio, DescripcionCosto = premezcla.EntradaProducto.Producto.Descripcion, PesoOrigen = Math.Round(peso, 2), Division = organizacion.Division, TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1} {2} {3} {4} ${5} {6}", tipoMovimiento, folio, (peso).ToString("N2"), unidad, premezcla.EntradaProducto.Producto.Descripcion, (importe).ToString("F2"), postFijoRef3), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad) }; poliza = GeneraRegistroPoliza(datos); polizaPremezcla.Add(poliza); return(polizaPremezcla); }
private IList <PolizaInfo> ObtenerPoliza(ProduccionFormulaInfo produccionFormula) { var polizasProduccionAlimento = new List <PolizaInfo>(); IList <ClaseCostoProductoInfo> cuentasAlmacenProductoSalida = ObtenerCostosProducto(produccionFormula.Almacen.AlmacenID); if (cuentasAlmacenProductoSalida == null || !cuentasAlmacenProductoSalida.Any()) { throw new ExcepcionServicio("No se encuentran cuentas configuradas, para productos del almacén de planta de alimentos"); } IList <CuentaSAPInfo> cuentasSap = ObtenerCuentasSAP(); TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.ProduccionAlimento.GetHashCode()); string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; 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); var almacenMovimientoBL = new AlmacenMovimientoBL(); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerPorId(produccionFormula.AlmacenMovimientoEntradaID); //string numeroReferencia = ObtenerNumeroReferencia; string numeroReferencia = ObtenerNumeroReferenciaFolio(almacenMovimiento.FolioMovimiento); DateTime fecha = produccionFormula.FechaProduccion; string archivoFolio = ObtenerArchivoFolio(fecha); OrganizacionInfo organizacion = ObtenerOrganizacionIVA(produccionFormula.Organizacion.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } foreach (var produccionDetalle in produccionFormula.ProduccionFormulaDetalle) { CuentaSAPInfo claveContableCargo; var cuentaSapEntrada = cuentasAlmacenProductoSalida.FirstOrDefault( cuenta => cuenta.ProductoID == produccionFormula.Formula.Producto.ProductoId); if (cuentaSapEntrada == null) { cuentaSapEntrada = new ClaseCostoProductoInfo(); } claveContableCargo = cuentasSap.FirstOrDefault(sap => sap.CuentaSAPID == cuentaSapEntrada.CuentaSAPID); if (claveContableCargo == null) { throw new ExcepcionServicio(string.Format("No se encontró configurada la cuenta del producto {0}", produccionFormula.Formula.Producto.ProductoDescripcion)); } var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = produccionFormula.FechaProduccion, Folio = numeroReferencia, CabezasRecibidas = string.Empty, NumeroDocumento = string.Empty, ClaseDocumento = postFijoRef3, ClaveProveedor = string.Empty, Importe = string.Format("{0}", Math.Round(produccionDetalle.CantidadProducto * produccionDetalle.PrecioPromedio, 2).ToString("F2")), IndicadorImpuesto = String.Empty, CentroCosto = string.Empty, Renglon = Convert.ToString(linea++), Cabezas = string.Empty, ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = claveContableCargo.CuentaSAP, 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, numeroReferencia, produccionDetalle.Producto.ProductoDescripcion, (string.Format("{0} {1}.", produccionDetalle.CantidadProducto.ToString("N2"), produccionDetalle.Producto.UnidadMedicion.ClaveUnidad)), produccionDetalle.PrecioPromedio.ToString("C2")), Sociedad = organizacion.Sociedad, DescripcionProducto = produccionDetalle.Producto.ProductoDescripcion, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasProduccionAlimento.Add(polizaSalida); var cuentaSapSale = cuentasAlmacenProductoSalida.FirstOrDefault( cuenta => cuenta.ProductoID == produccionDetalle.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}", produccionDetalle.Producto.ProductoDescripcion)); } datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = produccionFormula.FechaProduccion, Folio = numeroReferencia, CabezasRecibidas = string.Empty, NumeroDocumento = string.Empty, ClaseDocumento = postFijoRef3, ClaveProveedor = string.Empty, Importe = string.Format("{0}", (Math.Round(produccionDetalle.CantidadProducto * produccionDetalle.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, numeroReferencia, produccionDetalle.Producto.ProductoDescripcion, (string.Format("{0} {1}.", produccionDetalle.CantidadProducto.ToString("N2"), produccionDetalle.Producto.UnidadMedicion.ClaveUnidad)), produccionDetalle.PrecioPromedio.ToString("C2")), Sociedad = organizacion.Sociedad, DescripcionProducto = produccionDetalle.Producto.ProductoDescripcion, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasProduccionAlimento.Add(polizaSalida); } return(polizasProduccionAlimento); }
private IList <PolizaInfo> ObtenerPoliza(SalidaProductoInfo salidaProducto) { var polizasSalida = new List <PolizaInfo>(); TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.SalidaVentaProducto.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.SalidaVentaProducto)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; 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); //string numeroReferencia = string.Format("{0}{1}", salidaProducto.FolioSalida, ObtenerNumeroReferencia); string numeroReferencia = ObtenerNumeroReferenciaFolio(salidaProducto.FolioSalida); IList <CuentaSAPInfo> cuentasSAP = ObtenerCuentasSAP(); IList <ClaseCostoProductoInfo> almacenesProductos = ObtenerCostosProducto(salidaProducto.Almacen.AlmacenID); OrganizacionInfo organizacion = ObtenerOrganizacionIVA(salidaProducto.Organizacion.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } ClaseCostoProductoInfo almacenProducto = almacenesProductos.FirstOrDefault(prod => prod.ProductoID == salidaProducto.Producto.ProductoId); if (almacenProducto == null) { throw new ExcepcionServicio(string.Format("{0} {1} {2}", "CUENTA PARA PRODUCTO", salidaProducto.Producto.Descripcion, "NO CONFIGURADA")); } CuentaSAPInfo cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenProducto.CuentaSAPID); if (cuentaSAP == null) { cuentaSAP = new CuentaSAPInfo { Descripcion = string.Empty, CuentaSAP = string.Empty }; } ClaveContableInfo claveContableCosto = ObtenerCuentaInventario(salidaProducto.Organizacion. OrganizacionID, TipoPoliza.ConsumoAlimento); if (claveContableCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CUENTA DE COSTO NO CONFIGURADA")); } ClaveContableInfo claveContableBeneficios = ObtenerCuentaInventario(salidaProducto.Organizacion. OrganizacionID, TipoPoliza.SalidaVentaProducto); if (claveContableBeneficios == null) { throw new ExcepcionServicio(string.Format("{0}", "CUENTA DE BENEFICIOS NO CONFIGURADA")); } ParametroOrganizacionInfo parametroCentroCosto = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } ParametroOrganizacionInfo parametroCentroBeneficio = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROBENEFICIOMP.ToString()); if (parametroCentroBeneficio == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE BENEFICIO NO CONFIGURADO")); } string archivoFolio = ObtenerArchivoFolio(salidaProducto.FechaSalida); int cantidad = salidaProducto.PesoBruto - salidaProducto.PesoTara; var almacenMovimientoDetalleBL = new AlmacenMovimientoDetalleBL(); AlmacenMovimientoDetalle detalleMovimiento = almacenMovimientoDetalleBL.ObtenerPorAlmacenMovimientoID( salidaProducto.AlmacenMovimiento.AlmacenMovimientoID); if (detalleMovimiento == null) { detalleMovimiento = new AlmacenMovimientoDetalle(); } if (unidades == null) { unidades = ObtenerUnidadesMedicion(); } if (productos == null) { productos = ObtenerProductos(); } ProductoInfo producto = productos.FirstOrDefault(clave => clave.ProductoId == salidaProducto.Producto.ProductoId); if (producto == null) { producto = new ProductoInfo(); } switch ((SubFamiliasEnum)producto.SubfamiliaId) { case SubFamiliasEnum.Granos: claveContableBeneficios.Valor = string.Concat(claveContableBeneficios.Valor, PostFijoSubFamiliaGranos); claveContableCosto.Valor = string.Concat(claveContableCosto.Valor, PostFijoSubFamiliaGranos); break; default: claveContableBeneficios.Valor = string.Concat(claveContableBeneficios.Valor, PostFijoSubFamiliaNoGranos); claveContableCosto.Valor = string.Concat(claveContableCosto.Valor, PostFijoSubFamiliaNoGranos); break; } var traspaso = false; if (salidaProducto.TipoMovimiento.TipoMovimientoID == TipoMovimiento.ProductoSalidaTraspaso.GetHashCode() || salidaProducto.TipoMovimiento.Descripcion.Equals("salida por traspaso", StringComparison.InvariantCultureIgnoreCase)) { salidaProducto.Cliente = new ClienteInfo { CodigoSAP = salidaProducto.CuentaSAP.CuentaSAP, Descripcion = salidaProducto.CuentaSAP.Descripcion }; traspaso = true; } string unidad = unidades.Where(clave => clave.UnidadID == producto.UnidadId). Select(uni => uni.ClaveUnidad).FirstOrDefault(); var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = salidaProducto.FechaSalida, Folio = salidaProducto.FolioSalida.ToString(), Cliente = traspaso ? string.Empty : salidaProducto.Cliente.CodigoSAP, Cuenta = traspaso ? salidaProducto.Cliente.CodigoSAP : string.Empty, Importe = string.Format("{0}", salidaProducto.Importe.ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", ClaseDocumento = postFijoRef3, Ref3 = ref3.ToString(), Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = salidaProducto.Cliente.Descripcion, PesoOrigen = cantidad, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, salidaProducto.FolioSalida, cantidad.ToString("N0"), unidad, cuentaSAP.Descripcion), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad) }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalida.Add(polizaSalida); datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = salidaProducto.FechaSalida, Folio = salidaProducto.FolioSalida.ToString(), Importe = (detalleMovimiento.Importe * -1).ToString("F2"), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSAP.CuentaSAP, DescripcionCosto = cuentaSAP.Descripcion, Division = organizacion.Division, ArchivoFolio = archivoFolio, PesoOrigen = cantidad, ClaseDocumento = postFijoRef3, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, salidaProducto.FolioSalida, cantidad.ToString("N0"), unidad, cuentaSAP.Descripcion), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad) }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalida.Add(polizaSalida); if (!traspaso) { cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAP == claveContableCosto.Valor); if (cuentaSAP == null) { throw new ExcepcionServicio("CUENTA DE COSTO NO CONFIGURADA"); } datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = salidaProducto.FechaSalida, Folio = salidaProducto.FolioSalida.ToString(), Importe = detalleMovimiento.Importe.ToString("F2"), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSAP.CuentaSAP, Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSAP.Descripcion, CentroCosto = claveContableCosto.Valor.StartsWith(PrefijoCuentaCentroCosto) || claveContableCosto.Valor.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, //CentroBeneficio = // claveContableBeneficios.Valor.StartsWith(PrefijoCuentaCentroBeneficio) // ? parametroCentroBeneficio.Valor // : string.Empty, PesoOrigen = cantidad, ClaseDocumento = postFijoRef3, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, salidaProducto.FolioSalida, cantidad.ToString("N0"), unidad, cuentaSAP.Descripcion), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad) }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalida.Add(polizaSalida); cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAP == claveContableBeneficios.Valor); if (cuentaSAP == null) { throw new ExcepcionServicio("CUENTA DE BENEFICIOS NO CONFIGURADA"); } datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = salidaProducto.FechaSalida, Folio = salidaProducto.FolioSalida.ToString(), Importe = string.Format("{0}", (salidaProducto.Importe * -1).ToString("F2")), Renglon = Convert.ToString(linea), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSAP.CuentaSAP, Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSAP.Descripcion, //CentroCosto = // claveContableCosto.Valor.StartsWith(PrefijoCuentaCentroCosto) || // claveContableCosto.Valor.StartsWith(PrefijoCuentaCentroGasto) // ? parametroCentroCosto.Valor // : string.Empty, CentroBeneficio = claveContableBeneficios.Valor.StartsWith(PrefijoCuentaCentroBeneficio) ? parametroCentroBeneficio.Valor : string.Empty, PesoOrigen = cantidad, ClaseDocumento = postFijoRef3, TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, salidaProducto.FolioSalida, cantidad.ToString("N0"), unidad, cuentaSAP.Descripcion), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad) }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalida.Add(polizaSalida); } return(polizasSalida); }
/// <summary> /// Constructor para editar una entidad ClaseCostoProducto Existente /// </summary> /// <param name="claseCostoProductoInfo"></param> public ClaseCostoProductoEdicion(ClaseCostoProductoInfo claseCostoProductoInfo) { InitializeComponent(); claseCostoProductoInfo.UsuarioModificacionID = AuxConfiguracion.ObtenerUsuarioLogueado(); Contexto = claseCostoProductoInfo; }
/// <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(txtClaseCostoProductoID.Text)) { resultado = false; mensaje = Properties.Resources.ClaseCostoProductoEdicion_MsgClaseCostoProductoIDRequerida; txtClaseCostoProductoID.Focus(); } else if (Contexto.Almacen == null || Contexto.Almacen.AlmacenID == 0) { resultado = false; mensaje = Properties.Resources.ClaseCostoProductoEdicion_MsgAlmacenIDRequerida; skAyudaAlmacen.AsignarFoco(); } else if (Contexto.Producto == null || Contexto.Producto.ProductoId == 0) { resultado = false; mensaje = Properties.Resources.ClaseCostoProductoEdicion_MsgProductoIDRequerida; skAyudaProducto.AsignarFoco(); } else if (Contexto.CuentaSAP == null || Contexto.CuentaSAP.CuentaSAPID == 0) { resultado = false; mensaje = Properties.Resources.ClaseCostoProductoEdicion_MsgCuentaSAPIDRequerida; skAyudaCuentaSAP.AsignarFoco(); } else if (cmbActivo.SelectedItem == null) { resultado = false; mensaje = Properties.Resources.ClaseCostoProductoEdicion_MsgActivoRequerida; cmbActivo.Focus(); } else { var claseCostoProductoBL = new ClaseCostoProductoBL(); IList <ClaseCostoProductoInfo> claseCostoProductoAlmacen = claseCostoProductoBL.ObtenerPorAlmacen(Contexto.Almacen.AlmacenID); ClaseCostoProductoInfo claseCostoProducto = claseCostoProductoAlmacen.FirstOrDefault( clase => clase.Producto.ProductoId == Contexto.Producto.ProductoId); if (claseCostoProducto != null && (Contexto.ClaseCostoProductoID == 0 || Contexto.ClaseCostoProductoID != claseCostoProducto.ClaseCostoProductoID)) { resultado = false; mensaje = string.Format(Properties.Resources.ClaseCostoProductoEdicion_MsgRegistroDuplicado, claseCostoProducto.ClaseCostoProductoID); } } } catch (Exception ex) { throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } if (!string.IsNullOrWhiteSpace(mensaje)) { SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning); } return(resultado); }
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); }