internal static IList <UnidadMedicionInfo> ObtenerTodos(IDataReader reader) { try { Logger.Info(); var lista = new List <UnidadMedicionInfo>(); UnidadMedicionInfo elemento; while (reader.Read()) { elemento = new UnidadMedicionInfo { UnidadID = Convert.ToInt32(reader["UnidadID"]), Descripcion = Convert.ToString(reader["Descripcion"]), ClaveUnidad = Convert.ToString(reader["ClaveUnidad"]), Activo = Convert.ToBoolean(reader["Activo"]).BoolAEnum(), }; lista.Add(elemento); } return(lista); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo para Guardar/Modificar una entidad UnidadMedicion /// </summary> /// <param name="info"></param> /// <returns></returns> public int Guardar(UnidadMedicionInfo info) { try { Logger.Info(); var id = 0; if (info.UnidadID > 0) { info.FechaModificacion = da.FechaServidor(); id = da.Actualizar <UnidadMedicionInfo>(info); } else { id = da.Insertar <UnidadMedicionInfo>(info); } return(id); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene una Unidad de Medicion /// </summary> /// <param name="unidadMedicionId"></param> /// <returns></returns> internal UnidadMedicionInfo ObtenerPorID(int unidadMedicionId) { UnidadMedicionInfo result = null; try { Logger.Info(); Dictionary <string, object> parameters = AuxUnidadMedicionDAL.ObtenerParametroPorID(unidadMedicionId); DataSet ds = Retrieve("UnidadMedicion_ObtenerPorID", parameters); if (ValidateDataSet(ds)) { result = MapUnidadMedicionDAL.ObtenerPorID(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); }
public void ObtenerUnidadMedicionPorId() { var unidadMedicionPL = new UnidadMedicionPL(); UnidadMedicionInfo unidadMedicion = unidadMedicionPL.ObtenerPorID(1); Assert.IsNotNull(unidadMedicion); Assert.IsTrue(unidadMedicion.Descripcion.Length > 0); }
/// <summary> /// Cambiar leyenda de Todos por Seleccione /// </summary> private void CambiarLeyendaCombo() { UnidadMedicionInfo unidadTodos = Contexto.UnidadesMedidcion.FirstOrDefault(desc => desc.Descripcion.Equals(Properties.Resources.cbo_Seleccionar)); if (unidadTodos != null) { unidadTodos.Descripcion = Properties.Resources.cbo_Seleccione; } FamiliaInfo familiaTodos = Contexto.Familias.FirstOrDefault(desc => desc.Descripcion.Equals(Properties.Resources.cbo_Seleccionar)); if (familiaTodos != null) { familiaTodos.Descripcion = Properties.Resources.cbo_Seleccione; } }
private IList <PolizaInfo> ObtenerPoliza(List <PolizaEntradaSalidaPorAjusteModel> ajustesDeInventario) { var polizasSalidaAjuste = new List <PolizaInfo>(); TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == TipoPoliza.EntradaAjuste.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.EntradaAjuste)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var linea = 1; var almacenMovimientoBL = new AlmacenMovimientoBL(); List <AlmacenMovimientoDetalle> almancenMovimientosDetalle = ajustesDeInventario.Select(mov => new AlmacenMovimientoDetalle { AlmacenMovimientoDetalleID = mov.AlmacenMovimientoDetalleID }).ToList(); AlmacenMovimientoInfo almacenMovimiento = almacenMovimientoBL.ObtenerMovimientoPorClaveDetalle(almancenMovimientosDetalle); if (almacenMovimiento == null) { almacenMovimiento = new AlmacenMovimientoInfo(); } string archivoFolio = ObtenerArchivoFolio(almacenMovimiento.FechaMovimiento); AlmacenInfo almacen = ObtenerAlmacen(almacenMovimiento.AlmacenID); if (almacen == null) { almacen = new AlmacenInfo { Organizacion = new OrganizacionInfo() }; } OrganizacionInfo organizacion = ObtenerOrganizacionIVA(almacen.Organizacion.OrganizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } 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(almacenMovimiento.FolioMovimiento); IList <CuentaSAPInfo> cuentasSAP = ObtenerCuentasSAP(); IList <ClaseCostoProductoInfo> almacenesProductos = ObtenerCostosProducto(almacen.AlmacenID); ParametroOrganizacionInfo parametroOrganizacionSuperavit; if (almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode()) { parametroOrganizacionSuperavit = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTASUPERAVITENG.ToString()); } else { parametroOrganizacionSuperavit = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTASUPERAVIT.ToString()); } if (parametroOrganizacionSuperavit == null) { throw new ExcepcionServicio(string.Format("{0}", "CUENTA DE SUPERAVIT NO CONFIGURADA")); } IList <ProductoInfo> productos = ObtenerProductos(); IList <UnidadMedicionInfo> unidades = ObtenerUnidadesMedicion(); IList <CuentaAlmacenSubFamiliaInfo> almacenesSubFamilia = ObtenerCostosSubFamilia(almacen.AlmacenID); ProductoInfo producto; PolizaEntradaSalidaPorAjusteModel ajuste; ClaseCostoProductoInfo almacenProducto; CuentaSAPInfo cuentaSAP; CuentaAlmacenSubFamiliaInfo almacenSubFamilia; ParametroOrganizacionInfo parametroCentroCosto = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } bool afectaCosto; for (var indexAjustes = 0; indexAjustes < ajustesDeInventario.Count; indexAjustes++) { ajuste = ajustesDeInventario[indexAjustes]; cuentaSAP = null; producto = productos.FirstOrDefault(clave => clave.ProductoId == ajuste.ProductoID); afectaCosto = ValidarAfectacionCuentaCosto(producto); if (!afectaCosto && (almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.Enfermeria.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ManejoGanado.GetHashCode() || almacen.TipoAlmacen.TipoAlmacenID == TipoAlmacenEnum.ReimplanteGanado.GetHashCode())) { almacenSubFamilia = almacenesSubFamilia.FirstOrDefault(sub => sub.SubFamiliaID == producto.SubfamiliaId); if (almacenSubFamilia != null) { cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenSubFamilia.CuentaSAPID); } } else { almacenProducto = almacenesProductos.FirstOrDefault(prod => prod.ProductoID == producto.ProductoId); if (almacenProducto != null) { cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenProducto.CuentaSAPID); } } if (cuentaSAP == null) { throw new ExcepcionServicio(string.Format("{0} {1} {2}", "CUENTA PARA PRODUCTO", producto.ProductoDescripcion, "NO CONFIGURADA")); } UnidadMedicionInfo unidad = unidades.FirstOrDefault(uni => uni.UnidadID == producto.UnidadId); if (unidad == null) { unidad = new UnidadMedicionInfo(); } var datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = almacenMovimiento.FechaMovimiento, Folio = almacenMovimiento.FolioMovimiento.ToString(), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", ajuste.Importe.ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = cuentaSAP.CuentaSAP, Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSAP.Descripcion, CentroCosto = cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) || cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, PesoOrigen = Math.Round(ajuste.Cantidad, 0), TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, almacenMovimiento.FolioMovimiento, producto.ProductoDescripcion, string.Format("{0} {1}", ajuste.Cantidad.ToString("N2"), unidad.ClaveUnidad), ajuste.Precio.ToString("C2")), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; PolizaInfo polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaAjuste.Add(polizaSalida); datos = new DatosPolizaInfo { NumeroReferencia = numeroReferencia, FechaEntrada = almacenMovimiento.FechaMovimiento, Folio = almacenMovimiento.FolioMovimiento.ToString(), Importe = string.Format("{0}", (ajuste.Importe * -1).ToString("F2")), Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = parametroOrganizacionSuperavit.Valor, CentroCosto = parametroOrganizacionSuperavit.Valor.StartsWith(PrefijoCuentaCentroCosto) || parametroOrganizacionSuperavit.Valor.StartsWith(PrefijoCuentaCentroGasto) ? parametroCentroCosto.Valor : string.Empty, Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = cuentaSAP.Descripcion, PesoOrigen = Math.Round(ajuste.Cantidad, 0), TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, almacenMovimiento.FolioMovimiento, producto.ProductoDescripcion, string.Format("{0} {1}", ajuste.Cantidad.ToString("N2"), unidad.ClaveUnidad), ajuste.Precio.ToString("C2")), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizasSalidaAjuste.Add(polizaSalida); } return(polizasSalidaAjuste); }
/// <summary> /// Obtiene un lista paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <UnidadMedicionInfo> ObtenerPorPagina(PaginacionInfo pagina, UnidadMedicionInfo filtro) { ResultadoInfo <UnidadMedicionInfo> resultado; try { Logger.Info(); var unidadMedicionBL = new UnidadMedicionBL(); resultado = unidadMedicionBL.ObtenerPorPagina(pagina, filtro); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Obtiene una lista paginada de UnidadMedicion /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <UnidadMedicionInfo> ObtenerPorPagina(PaginacionInfo pagina, UnidadMedicionInfo filtro) { try { Logger.Info(); var result = new ResultadoInfo <UnidadMedicionInfo>(); var condicion = da.Tabla <UnidadMedicionInfo>().Where(e => e.Activo == filtro.Activo); if (filtro.UnidadID > 0) { condicion = condicion.Where(e => e.UnidadID == filtro.UnidadID); } if (!string.IsNullOrEmpty(filtro.Descripcion)) { condicion = condicion.Where(e => e.Descripcion.Contains(filtro.Descripcion)); } 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); } }
/// <summary> /// Genera diccionario con los parametros /// necesiarios para la ejecucion del procedimiento /// que obtiene Unidad de Medicion Paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> internal static Dictionary <string, object> ObtenerParametrosPorPagina(PaginacionInfo pagina, UnidadMedicionInfo filtro) { Dictionary <string, object> parametros; try { Logger.Info(); parametros = new Dictionary <string, object> { { "@Descripcion", filtro.Descripcion }, { "@ClaveUnidad", filtro.ClaveUnidad }, { "@Activo", filtro.Activo }, { "@Inicio", pagina.Inicio }, { "@Limite", pagina.Limite } }; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
private IList <PolizaInfo> ObtenerPoliza(PolizaContratoModel datosContrato) { var polizasContrato = new List <PolizaInfo>(); int folioPedido = datosContrato.Contrato.Folio; int organizacionID = datosContrato.Contrato.Organizacion.OrganizacionID; DateTime fechaPedido = datosContrato.Contrato.Fecha; int miliSegunda = DateTime.Now.Millisecond; string archivoFolio = ObtenerArchivoFolio(fechaPedido); OrganizacionInfo organizacion = ObtenerOrganizacionIVA(organizacionID); var tipoContrato = (TipoContratoEnum)datosContrato.Contrato.TipoContrato.TipoContratoId; var tipoPolizaEnum = TipoPoliza.PolizaContratoTerceros; switch (tipoContrato) { case TipoContratoEnum.EnTransito: tipoPolizaEnum = TipoPoliza.PolizaContratoTransito; break; } TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault(clave => clave.TipoPolizaID == tipoPolizaEnum.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.PolizaContratoTerceros)); } string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; string postFijoRef3 = tipoPoliza.PostFijoRef3; var ref3 = new StringBuilder(); ref3.Append("03"); ref3.Append(Convert.ToString(folioPedido).PadLeft(10, ' ')); ref3.Append(new Random(10).Next(10, 20)); ref3.Append(new Random(30).Next(30, 40)); ref3.Append(miliSegunda); ref3.Append(postFijoRef3); //string numeroDocumento = ObtenerNumeroReferencia; string numeroDocumento = ObtenerNumeroReferenciaFolio(datosContrato.AlmacenMovimiento.FolioMovimiento); var proveedorAlmacenBL = new ProveedorAlmacenBL(); ProveedorAlmacenInfo proveedorAlmacen = proveedorAlmacenBL.ObtenerPorProveedorId(datosContrato.Contrato.Proveedor); var productos = ObtenerProductos(); var unidades = ObtenerUnidadesMedicion(); ProductoInfo producto = productos.FirstOrDefault(pro => pro.ProductoId == datosContrato.Contrato.Producto.ProductoId); if (producto == null) { producto = new ProductoInfo(); } UnidadMedicionInfo unidadProducto = unidades.FirstOrDefault(uni => uni.UnidadID == producto.UnidadId); if (unidadProducto == null) { unidadProducto = new UnidadMedicionInfo(); } if (proveedorAlmacen == null) { throw new ExcepcionServicio(string.Format("EL PROVEEDOR {0} NO TIENE ALMACEN ASIGNADO", datosContrato.Contrato.Proveedor.Descripcion)); } decimal importe = Math.Round(datosContrato.ContratoParcial.Importe, 4) * datosContrato.ContratoParcial.Cantidad; var renglon = 1; var datos = new DatosPolizaInfo { NumeroReferencia = numeroDocumento, FechaEntrada = datosContrato.Contrato.Fecha, Folio = datosContrato.Contrato.Folio.ToString(), Importe = string.Format("{0}", importe.ToString("F2")), Renglon = Convert.ToString(renglon), ImporteIva = "0", Ref3 = ref3.ToString(), Cuenta = datosContrato.Contrato.Cuenta.CuentaSAP, ArchivoFolio = archivoFolio, DescripcionCosto = datosContrato.Contrato.Cuenta.Descripcion, PesoOrigen = Math.Round(Convert.ToDecimal(datosContrato.ContratoParcial.Cantidad), 0), Division = organizacion.Division, TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1} {2} {3} {4} ${5} ${6} {7}", tipoMovimiento, datosContrato.Contrato.Folio, datosContrato.ContratoParcial.Cantidad.ToString("N2"), unidadProducto.ClaveUnidad, datosContrato.Contrato.Producto.Descripcion, importe.ToString("N2"), datosContrato.ContratoParcial.Importe.ToString("N4"), postFijoRef3), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; PolizaInfo poliza = GeneraRegistroPoliza(datos); polizasContrato.Add(poliza); renglon++; datos = new DatosPolizaInfo { NumeroReferencia = numeroDocumento, FechaEntrada = datosContrato.Contrato.Fecha, Folio = datosContrato.Contrato.Folio.ToString(), ClaveProveedor = datosContrato.Contrato.Proveedor.CodigoSAP, Importe = string.Format("{0}", (importe * -1).ToString("F2")), Renglon = Convert.ToString(renglon), Division = organizacion.Division, ImporteIva = "0", Ref3 = ref3.ToString(), ArchivoFolio = archivoFolio, DescripcionCosto = datosContrato.Contrato.Proveedor.Descripcion, PesoOrigen = Math.Round(Convert.ToDecimal(datosContrato.Contrato.Cantidad), 0), TipoDocumento = textoDocumento, ClaseDocumento = postFijoRef3, Concepto = String.Format("{0}-{1} {2} {3} {4} ${5} ${6} {7}", tipoMovimiento, datosContrato.Contrato.Folio, datosContrato.ContratoParcial.Cantidad.ToString("N2"), unidadProducto.ClaveUnidad, datosContrato.Contrato.Producto.Descripcion, importe.ToString("N2"), datosContrato.ContratoParcial.Importe.ToString("N4"), postFijoRef3), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; poliza = GeneraRegistroPoliza(datos); polizasContrato.Add(poliza); return(polizasContrato); }
private IList <PolizaInfo> ObtenerPolizas(RecepcionProductoInfo recepcionProducto) { var polizaCompraMateriaPrima = new List <PolizaInfo>(); int organizacionID = recepcionProducto.Almacen.Organizacion.OrganizacionID; OrganizacionInfo organizacion = ObtenerOrganizacionIVA(organizacionID); if (organizacion == null) { organizacion = new OrganizacionInfo { TipoOrganizacion = new TipoOrganizacionInfo() }; } TipoPolizaInfo tipoPoliza = TiposPoliza.FirstOrDefault( clave => clave.TipoPolizaID == TipoPoliza.EntradaCompraMateriaPrima.GetHashCode()); if (tipoPoliza == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "EL TIPO DE POLIZA", TipoPoliza.EntradaCompraMateriaPrima)); } string postFijoRef3 = tipoPoliza.PostFijoRef3; 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 numeroDocumento = ObtenerNumeroReferencia; IList <CuentaSAPInfo> cuentasSAP = ObtenerCuentasSAP(); int almacenID = recepcionProducto.Almacen.AlmacenID; IList <ClaseCostoProductoInfo> almacenesProductos = ObtenerCostosProducto(almacenID); IList <UnidadMedicionInfo> unidadesMedicion = ObtenerUnidadesMedicion(); var linea = 1; string textoDocumento = tipoPoliza.TextoDocumento; string tipoMovimiento = tipoPoliza.ClavePoliza; DateTime fecha = recepcionProducto.FechaRecepcion; string archivoFolio = ObtenerArchivoFolio(fecha); int folio = recepcionProducto.FolioRecepcion; ParametroOrganizacionInfo parametroCentroCosto = ObtenerParametroOrganizacionPorClave(organizacion.OrganizacionID, ParametrosEnum.CTACENTROCOSTOMP.ToString()); if (parametroCentroCosto == null) { throw new ExcepcionServicio(string.Format("{0}", "CENTRO DE COSTO NO CONFIGURADO")); } IList <RecepcionProductoDetalleInfo> detallesProducto = recepcionProducto.ListaRecepcionProductoDetalle; RecepcionProductoDetalleInfo detalle; DatosPolizaInfo datos; PolizaInfo polizaSalida; CuentaSAPInfo cuentaSAP; ClaseCostoProductoInfo almacenProducto; CuentaSAPInfo cuentaIva; UnidadMedicionInfo unidadMedicion = null; for (int indexDetalle = 0; indexDetalle < detallesProducto.Count; indexDetalle++) { detalle = detallesProducto[indexDetalle]; almacenProducto = almacenesProductos.FirstOrDefault(prod => prod.ProductoID == detalle.Producto.ProductoId); if (almacenProducto == null) { throw new ExcepcionServicio(string.Format("{0} {1} {2}", "CUENTA PARA PRODUCTO", detalle.Producto.Descripcion, "NO CONFIGURADA")); } cuentaSAP = cuentasSAP.FirstOrDefault(cuenta => cuenta.CuentaSAPID == almacenProducto.CuentaSAPID); if (cuentaSAP == null) { throw new ExcepcionServicio(string.Format("{0} {1} {2}", "CUENTA PARA PRODUCTO", detalle.Producto.Descripcion, "NO CONFIGURADA")); } unidadMedicion = unidadesMedicion.FirstOrDefault(clave => clave.UnidadID == detalle.Producto.UnidadMedicion.UnidadID); datos = new DatosPolizaInfo { NumeroReferencia = numeroDocumento, FechaEntrada = fecha, Folio = folio.ToString(), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", detalle.Importe.ToString("F2")), IndicadorImpuesto = String.Empty, Renglon = Convert.ToString(linea++), ImporteIva = "0", Ref3 = ref3.ToString(), Division = organizacion.Division, ArchivoFolio = archivoFolio, Cuenta = cuentaSAP.CuentaSAP, DescripcionCosto = cuentaSAP.Descripcion, CentroCosto = cuentaSAP.CuentaSAP.StartsWith(PrefijoCuentaCentroCosto) ? parametroCentroCosto.Valor : string.Empty, PesoOrigen = Math.Round(detalle.Cantidad, 0), TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4} {5}", tipoMovimiento, folio, detalle.Cantidad.ToString("N0") , unidadMedicion.ClaveUnidad , detalle.Producto.Descripcion, postFijoRef3), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizaCompraMateriaPrima.Add(polizaSalida); } cuentaIva = cuentasSAP.FirstOrDefault( clave => clave.CuentaSAP.Equals(organizacion.Iva.CuentaRecuperar.ClaveCuenta)); if (cuentaIva == null) { throw new ExcepcionServicio(string.Format("{0} {1}", "NO EXISTE CONFIGURACIONES PARA LA CUENTA", organizacion.Iva.Descripcion)); } ParametroGeneralInfo parametroGeneralProductos = ObtenerParametroGeneralPorClave(ParametrosEnum.PRODIVAALM.ToString()); List <int> productosGeneranIVA = parametroGeneralProductos.Valor.Split('|').Select(x => Convert.ToInt32(x)).ToList(); var medicamentosConIva = productosGeneranIVA.Select(x => new RecepcionProductoDetalleInfo { Producto = new ProductoInfo { ProductoId = x } }).ToList(); decimal importe = detallesProducto.Where(fam => fam.Producto.Familia.FamiliaID != FamiliasEnum.Medicamento.GetHashCode()). Sum(imp => imp.Importe); decimal importeMedicamentosIva = (from det in detallesProducto join med in medicamentosConIva on det.Producto.ProductoId equals med.Producto.ProductoId select det.Importe).Sum(); importe = importe + importeMedicamentosIva; decimal importeIva = importe * (organizacion.Iva.TasaIva / 100); importe = importe + importeIva; decimal cantidad = detallesProducto.Where(fam => fam.Producto.Familia.FamiliaID != FamiliasEnum.Medicamento.GetHashCode()). Intersect(medicamentosConIva). Sum(kgs => kgs.Cantidad); decimal cantidadMedicamentosIva = (from det in detallesProducto join med in medicamentosConIva on det.Producto.ProductoId equals med.Producto.ProductoId select det.Cantidad).Sum(); cantidad += cantidadMedicamentosIva; if (importe > 0) { datos = new DatosPolizaInfo { NumeroReferencia = numeroDocumento, FechaEntrada = fecha, Folio = folio.ToString(), ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", importeIva.ToString("F2")), IndicadorImpuesto = organizacion.Iva.IndicadorIvaRecuperar, Division = organizacion.Division, Renglon = Convert.ToString(linea++), ImporteIva = importe.ToString("F2"), Ref3 = ref3.ToString(), ArchivoFolio = archivoFolio, Cuenta = cuentaIva.CuentaSAP, DescripcionCosto = cuentaIva.Descripcion, PesoOrigen = Math.Round(cantidad, 0), TipoDocumento = textoDocumento, ClaveImpuesto = ClaveImpuesto, CondicionImpuesto = CondicionImpuesto, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, folio, cantidad.ToString("N0") , unidadMedicion.ClaveUnidad , postFijoRef3), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizaCompraMateriaPrima.Add(polizaSalida); } importe = detallesProducto.Sum(imp => imp.Importe); cantidad = detallesProducto.Sum(kgs => kgs.Cantidad); datos = new DatosPolizaInfo { NumeroReferencia = numeroDocumento, FechaEntrada = fecha, Folio = folio.ToString(), ClaveProveedor = recepcionProducto.Proveedor.CodigoSAP, ClaseDocumento = postFijoRef3, Importe = string.Format("{0}", ((importe + importeIva) * -1).ToString("F2")), IndicadorImpuesto = String.Empty, Renglon = Convert.ToString(linea), ImporteIva = "0", Ref3 = ref3.ToString(), Division = organizacion.Division, ArchivoFolio = archivoFolio, DescripcionCosto = recepcionProducto.Proveedor.Descripcion, PesoOrigen = Math.Round(cantidad, 0), TipoDocumento = textoDocumento, Concepto = String.Format("{0}-{1} {2} {3} {4}", tipoMovimiento, folio, cantidad.ToString("N0"), unidadMedicion.ClaveUnidad, postFijoRef3), Sociedad = organizacion.Sociedad, Segmento = string.Format("{0}{1}", PrefijoSegmento, organizacion.Sociedad), }; polizaSalida = GeneraRegistroPoliza(datos); polizaCompraMateriaPrima.Add(polizaSalida); return(polizaCompraMateriaPrima); }
/// <summary> /// Obtiene un lista paginada de usuario por el filtro especificado /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> internal ResultadoInfo <UnidadMedicionInfo> ObtenerPorPagina(PaginacionInfo pagina, UnidadMedicionInfo filtro) { ResultadoInfo <UnidadMedicionInfo> unidadMedicionLista = null; try { Dictionary <string, object> parameters = AuxUnidadMedicionDAL.ObtenerParametrosPorPagina(pagina, filtro); DataSet ds = Retrieve("UnidadMedicion_ObtenerPorPagina", parameters); if (ValidateDataSet(ds)) { unidadMedicionLista = MapUnidadMedicionDAL.ObtenerPorPagina(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(unidadMedicionLista); }