/// <summary> /// Obtiene los parametros para guardar /// </summary> /// <param name="recepcionProducto"></param> /// <returns></returns> internal static Dictionary <string, object> ObtenerParametrosGuardar(RecepcionProductoInfo recepcionProducto) { Dictionary <string, object> parametros; try { Logger.Info(); parametros = new Dictionary <string, object> { { "@OrganizacionID", recepcionProducto.Almacen.Organizacion.OrganizacionID }, { "@AlmacenID", recepcionProducto.Almacen.AlmacenID }, { "@FolioOrdenCompra", recepcionProducto.FolioOrdenCompra }, { "@FechaSolicitud", recepcionProducto.FechaSolicitud }, { "@ProveedorID", recepcionProducto.Proveedor.ProveedorID }, { "@AlmacenMovimientoID", recepcionProducto.AlmacenMovimientoId }, { "@Factura", recepcionProducto.Factura }, { "@UsuarioCreacionID", recepcionProducto.UsuarioCreacion.UsuarioID }, { "@TipoFolio", (int)TipoFolio.RecepcionProducto }, { "@Activo", EstatusEnum.Activo } }; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
private void LimpiarTodo() { txtOrdenCompra.Text = ""; dgRecepcionCompra.ItemsSource = new List <RecepcionProductoDetalleInfo>(); dgRecepcion.ItemsSource = new List <RecepcionProductoDetalleInfo>(); txtProveedor.Clear(); txtFecha.Clear(); txtObservaciones.Clear(); contador = 0; skAyudaProveedor.IsEnabled = true; txtFactura.IsEnabled = true; recepcionProducto = new RecepcionProductoInfo(); recepcionProducto.ListaRecepcionProductoDetalle = new List <RecepcionProductoDetalleInfo>(); recepcionProductoCompra = new RecepcionProductoInfo(); recepcionProductoCompra.ListaRecepcionProductoDetalle = new List <RecepcionProductoDetalleInfo>(); gbDatos.IsEnabled = false; LimpiarCampos(); txtOrdenCompra.Focus(); btnGuardar.IsEnabled = false; chkDll.IsEnabled = true; chkDll.IsChecked = false; }
internal RecepcionProductoInfo ObtenerRecepcionVista(RecepcionProductoInfo recepcionProductoCompra, int organizacionId) { RecepcionProductoInfo recepcionProductoGuardado = null; try { Logger.Info(); string cadena = string.Format( "SELECT OrganizacionID,FolioSolicitud,FechaSolicitud,Proveedor,Producto,Cantidad,CostoUnitario,Importe,Unidad,CuentaGasto FROM VW_Interfaz_SIAP_ComprasWEB WHERE OrganizacionID = {0} AND FolioSolicitud = {1}", organizacionId, recepcionProductoCompra.FolioOrdenCompra); var ds = new DataSet(); using (SqlConnection connection = new SqlConnection(this.ConnectionString)) { SqlCommand command = new SqlCommand(cadena, connection); command.Connection.Open(); var adapter = new SqlDataAdapter(command); adapter.Fill(ds); } if (ValidateDataSet(ds)) { recepcionProductoGuardado = MapRecepcionProductoDAL.ObtenerRecepcionProductoVista(ds); } } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(recepcionProductoGuardado); }
/// <summary> /// Obtiene la recepcion desde la vista del servidor de la organizacion /// </summary> /// <param name="recepcionProductoCompra"></param> /// <param name="organizacionId"></param> /// <param name="conexion"></param> /// <returns></returns> public RecepcionProductoInfo ObtenerRecepcionVista(RecepcionProductoInfo recepcionProductoCompra, int organizacionId, string conexion) { try { var recepcionProductoBl = new RecepcionProductoBL(); return(recepcionProductoBl.ObtenerRecepcionVista(recepcionProductoCompra, organizacionId, conexion)); } catch (Exception ex) { Logger.Error(ex); } return(null); }
public RecepcionProductoInfo ObtenerRecepcionPorFolio(RecepcionProductoInfo recepcionProductoCompra) { try { var recepcionProductoBl = new RecepcionProductoBL(); return(recepcionProductoBl.ObtenerRecepcionPorFolio(recepcionProductoCompra)); } catch (Exception ex) { Logger.Error(ex); } return(null); }
public RecepcionProducto() { InitializeComponent(); organizacionId = Extensor.ValorEntero(Application.Current.Properties["OrganizacionID"].ToString()); usuarioId = Extensor.ValorEntero(Application.Current.Properties["UsuarioID"].ToString()); ConsultaAlmacenGeneral(); AgregarAyudaProveedor(); AgregarAyudaProducto(); CargarDatos(); recepcionProducto = new RecepcionProductoInfo(); recepcionProducto.ListaRecepcionProductoDetalle = new List <RecepcionProductoDetalleInfo>(); contador = 0; renglon = -1; }
/// <summary> /// Guarda una recepcion de producto /// </summary> /// <param name="recepcionProducto"></param> /// <returns></returns> public MemoryStream Guardar(RecepcionProductoInfo recepcionProducto) { MemoryStream poliza; try { var recepcionProductoBl = new RecepcionProductoBL(); poliza = recepcionProductoBl.Guardar(recepcionProducto); } catch (ExcepcionServicio ex) { Logger.Error(ex); throw; } catch (Exception ex) { Logger.Error(ex); throw; } return(poliza); }
internal RecepcionProductoInfo ObtenerRecepcionPorFolio(RecepcionProductoInfo recepcionProductoCompra) { RecepcionProductoInfo info; try { Logger.Info(); var recepcionProductoDAL = new RecepcionProductoDAL(); info = recepcionProductoDAL.ObtenerRecepcionPorFolio(recepcionProductoCompra); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }
/// <summary> /// /// </summary> /// <param name="recepcionProductoCompra"></param> /// <param name="organizacionId"></param> /// <param name="conexion"></param> /// <returns></returns> internal RecepcionProductoInfo ObtenerRecepcionVista(RecepcionProductoInfo recepcionProductoCompra, int organizacionId, string conexion) { RecepcionProductoInfo info; try { Logger.Info(); var recepcionProductoDAL = new RecepcionProductoDAL(conexion); info = recepcionProductoDAL.ObtenerRecepcionVista(recepcionProductoCompra, organizacionId); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(info); }
private long GuardarMovimientos(RecepcionProductoInfo recepcionProducto) { long almacenMovimientoId = 0; try { var almacenMovimientoBl = new AlmacenMovimientoBL(); AlmacenMovimientoInfo almacenMovimiento = new AlmacenMovimientoInfo(); almacenMovimiento.AlmacenID = recepcionProducto.Almacen.AlmacenID; almacenMovimiento.TipoMovimientoID = (int)TipoMovimiento.RecepcionProducto; almacenMovimiento.Observaciones = recepcionProducto.Observaciones; almacenMovimiento.Status = (int)EstatusInventario.Aplicado; almacenMovimiento.ProveedorId = recepcionProducto.Proveedor.ProveedorID; almacenMovimiento.UsuarioCreacionID = recepcionProducto.UsuarioCreacion.UsuarioID; almacenMovimientoId = almacenMovimientoBl.Crear(almacenMovimiento); if (almacenMovimientoId > 0) { var almacenMovimientoDetalleBl = new AlmacenMovimientoDetalleBL(); foreach (var recepcionProductoDetalle in recepcionProducto.ListaRecepcionProductoDetalle) { var almacenMovimientoDetalle = new AlmacenMovimientoDetalle(); almacenMovimientoDetalle.AlmacenMovimientoID = almacenMovimientoId; almacenMovimientoDetalle.ProductoID = recepcionProductoDetalle.Producto.ProductoId; almacenMovimientoDetalle.Importe = recepcionProductoDetalle.Importe; almacenMovimientoDetalle.Cantidad = recepcionProductoDetalle.Cantidad; almacenMovimientoDetalle.Precio = almacenMovimientoDetalle.Importe / almacenMovimientoDetalle.Cantidad; almacenMovimientoDetalle.UsuarioCreacionID = recepcionProducto.UsuarioCreacion.UsuarioID; almacenMovimientoDetalleBl.Crear(almacenMovimientoDetalle); } } } catch (Exception ex) { Logger.Error(ex); } return(almacenMovimientoId); }
/// <summary> /// Obtiene una Recepcion por Folio Recepcion y Organizacion /// </summary> /// <param name="recepcionProducto"></param> /// <returns></returns> internal RecepcionProductoInfo ObtenerRecepcionPorFolioOrganizacion(RecepcionProductoInfo recepcionProducto) { RecepcionProductoInfo resultado = null; try { Logger.Info(); Dictionary <string, object> parameters = AuxRecepcionProductoDAL.ObtenerParametrosObtenerPorFolioOrganizacion(recepcionProducto); DataSet ds = Retrieve("RecepcionProducto_ObtenerPorFolioOrganizacion", parameters); if (ValidateDataSet(ds)) { resultado = MapRecepcionProductoDAL.ObtenerRecepcionPorFolioOrganizacion(ds); } } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resultado); }
/// <summary> /// Obtiene los parametros necesarios para /// la ejecucion del procedimiento almacenado /// RecepcionProducto_ObtenerPorFolioOrganizacionPaginado /// </summary> /// <param name="pagina"></param> /// <param name="recepcionProducto"></param> /// <returns></returns> internal static Dictionary <string, object> ObtenerParametrosObtenerPorFolioOrganizacionPaginado(PaginacionInfo pagina, RecepcionProductoInfo recepcionProducto) { Dictionary <string, object> parametros; try { Logger.Info(); parametros = new Dictionary <string, object> { { "@FolioRecepcion", recepcionProducto.FolioRecepcion }, { "@OrganizacionID", recepcionProducto.Almacen.Organizacion.OrganizacionID }, { "@Inicio", pagina.Inicio }, { "@Limite", pagina.Limite }, { "@Proveedor", recepcionProducto.Proveedor.Descripcion }, }; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
/// <summary> /// Guarda una recepcion de producto /// </summary> /// <param name="recepcionProducto"></param> /// <returns></returns> internal MemoryStream Guardar(RecepcionProductoInfo recepcionProducto) { try { MemoryStream pdf = null; PolizaAbstract poliza = null; IList <PolizaInfo> polizas = null; int organizacionID = 0; var recepcionProductoDal = new RecepcionProductoDAL(); using (var transaction = new TransactionScope()) { int usuarioID = 0; if (GuardarInventario(recepcionProducto)) { long almacenMovimiento = GuardarMovimientos(recepcionProducto); recepcionProducto.AlmacenMovimientoId = almacenMovimiento; var recepcionGuardada = recepcionProductoDal.Guardar(recepcionProducto); if (recepcionGuardada != null) { foreach (var recepcionProductoDetalleInfo in recepcionProducto.ListaRecepcionProductoDetalle ) { recepcionProductoDetalleInfo.RecepcionProductoId = recepcionGuardada.RecepcionProductoId; recepcionProductoDetalleInfo.UsuarioCreacion = new UsuarioInfo() { UsuarioID = recepcionProducto. UsuarioCreacion.UsuarioID }; usuarioID = recepcionProducto.UsuarioCreacion.UsuarioID; organizacionID = recepcionProducto.Proveedor.OrganizacionID; recepcionProductoDetalleInfo.Activo = EstatusEnum.Activo; } var recepcionProductoDetalleBl = new RecepcionProductoDetalleBL(); recepcionProductoDetalleBl.Guardar(recepcionProducto.ListaRecepcionProductoDetalle); #region POLIZA poliza = FabricaPoliza.ObtenerInstancia().ObtenerTipoPoliza(TipoPoliza.EntradaCompraMateriaPrima); recepcionProducto.FolioRecepcion = recepcionGuardada.FolioRecepcion; recepcionProducto.FechaRecepcion = recepcionGuardada.FechaRecepcion; polizas = poliza.GeneraPoliza(recepcionProducto); if (polizas != null) { if (organizacionID == 0) { organizacionID = recepcionProducto.Almacen.Organizacion.OrganizacionID; } var polizaBL = new PolizaBL(); polizas.ToList().ForEach(datos => { datos.OrganizacionID = organizacionID; datos.UsuarioCreacionID = usuarioID; datos.ArchivoEnviadoServidor = 1; }); polizaBL.GuardarServicioPI(polizas, TipoPoliza.EntradaCompraMateriaPrima); pdf = poliza.ImprimePoliza(recepcionProducto, polizas); } #endregion POLIZA transaction.Complete(); } } } return(pdf); } catch (ExcepcionServicio ex) { Logger.Error(ex); throw; } catch (Exception ex) { Logger.Error(ex); throw; } }
private void Buscar() { if (txtOrdenCompra.Text != "") { try { if (!string.IsNullOrEmpty(servidor) && !string.IsNullOrEmpty(baseDatos)) { string conexion = string.Format( @"Initial Catalog={0};Data Source={1};User ID=usrsoporte;Password=usrsoporte", baseDatos, servidor); var recepcionProductoPl = new RecepcionProductoPL(); recepcionProductoCompra = new RecepcionProductoInfo(); recepcionProductoCompra.FolioOrdenCompra = txtOrdenCompra.Text; recepcionProductoCompra = recepcionProductoPl.ObtenerRecepcionVista(recepcionProductoCompra, organizacionId, conexion); if (recepcionProductoCompra != null) { txtProveedor.Text = recepcionProductoCompra.Proveedor.Descripcion; txtFecha.Text = recepcionProductoCompra.FechaSolicitud.ToShortDateString() .ToString(CultureInfo.InvariantCulture); gbDatos.IsEnabled = true; dgRecepcionCompra.ItemsSource = new List <RecepcionProductoDetalleInfo>(); dgRecepcionCompra.ItemsSource = recepcionProductoCompra.ListaRecepcionProductoDetalle; } else { gbDatos.IsEnabled = false; renglon = -1; LimpiarCampos(); recepcionProducto = new RecepcionProductoInfo(); recepcionProducto.ListaRecepcionProductoDetalle = new List <RecepcionProductoDetalleInfo>(); recepcionProductoCompra = new RecepcionProductoInfo(); recepcionProductoCompra.ListaRecepcionProductoDetalle = new List <RecepcionProductoDetalleInfo>(); dgRecepcionCompra.ItemsSource = new List <RecepcionProductoDetalleInfo>(); dgRecepcion.ItemsSource = new List <RecepcionProductoDetalleInfo>(); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.RecepcionProducto_CompraInvalida, MessageBoxButton.OK, MessageImage.Stop); txtOrdenCompra.Focus(); } } else { renglon = -1; LimpiarCampos(); recepcionProducto = new RecepcionProductoInfo(); recepcionProducto.ListaRecepcionProductoDetalle = new List <RecepcionProductoDetalleInfo>(); recepcionProductoCompra = new RecepcionProductoInfo(); recepcionProductoCompra.ListaRecepcionProductoDetalle = new List <RecepcionProductoDetalleInfo>(); dgRecepcionCompra.ItemsSource = new List <RecepcionProductoDetalleInfo>(); dgRecepcion.ItemsSource = new List <RecepcionProductoDetalleInfo>(); SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.RecepcionProducto_msgErrorAlObtenerParametros, MessageBoxButton.OK, MessageImage.Stop); txtOrdenCompra.Focus(); } } catch (Exception ex) { Logger.Error(ex); } } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.RecepcionProducto_IngresarFolioOrdenCompra, MessageBoxButton.OK, MessageImage.Stop); txtOrdenCompra.Focus(); } }
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 una lista de Recepcion Producto /// con su detalle /// </summary> /// <param name="reader"></param> /// <returns></returns> internal static List <RecepcionProductoInfo> ObtenerRecepcionProductoConciliacionPorAlmacenMovimientoXML(IDataReader reader) { try { Logger.Info(); var recepcionProductos = new List <RecepcionProductoInfo>(); RecepcionProductoInfo recepcionProducto; while (reader.Read()) { recepcionProducto = new RecepcionProductoInfo { Almacen = new AlmacenInfo { AlmacenID = Convert.ToInt32(reader["AlmacenID"]), Organizacion = new OrganizacionInfo { OrganizacionID = Convert.ToInt32(reader["OrganizacionID"]) } }, RecepcionProductoId = Convert.ToInt32(reader["RecepcionProductoID"]), AlmacenMovimientoId = Convert.ToInt64(reader["AlmacenMovimientoID"]), Factura = Convert.ToString(reader["Factura"]), FechaRecepcion = Convert.ToDateTime(reader["FechaRecepcion"]), FolioRecepcion = Convert.ToInt32(reader["FolioRecepcion"]), FolioOrdenCompra = Convert.ToString(reader["FolioOrdenCompra"]), FechaSolicitud = Convert.ToDateTime(reader["FechaSolicitud"]), Proveedor = new ProveedorInfo { ProveedorID = Convert.ToInt32(reader["ProveedorID"]), Descripcion = Convert.ToString(reader["Proveedor"]), CodigoSAP = Convert.ToString(reader["CodigoSAP"]) } }; recepcionProductos.Add(recepcionProducto); } reader.NextResult(); var recepcionProductoDetalles = new List <RecepcionProductoDetalleInfo>(); RecepcionProductoDetalleInfo recepcionProductoDetalle; while (reader.Read()) { recepcionProductoDetalle = new RecepcionProductoDetalleInfo { Cantidad = Convert.ToDecimal(reader["Cantidad"]), Importe = Convert.ToDecimal(reader["Importe"]), PrecioPromedio = Convert.ToDecimal(reader["PrecioPromedio"]), Producto = new ProductoInfo { ProductoId = Convert.ToInt32(reader["ProductoID"]), Descripcion = Convert.ToString(reader["Producto"]), Familia = new FamiliaInfo { FamiliaID = Convert.ToInt32(reader["FamiliaID"]), Descripcion = Convert.ToString(reader["Familia"]) }, SubFamilia = new SubFamiliaInfo { SubFamiliaID = Convert.ToInt32(reader["SubFamiliaID"]), Descripcion = Convert.ToString(reader["SubFamilia"]), Familia = new FamiliaInfo { FamiliaID = Convert.ToInt32(reader["FamiliaID"]), Descripcion = Convert.ToString(reader["Familia"]) }, }, UnidadMedicion = new UnidadMedicionInfo { UnidadID = Convert.ToInt32(reader["UnidadID"]) } }, RecepcionProductoId = Convert.ToInt32(reader["RecepcionProductoID"]), RecepcionProductoDetalleId = Convert.ToInt32(reader["RecepcionProductoDetalleID"]) }; recepcionProductoDetalles.Add(recepcionProductoDetalle); } recepcionProductos.ForEach(datos => { datos.ListaRecepcionProductoDetalle = recepcionProductoDetalles.Where( id => id.RecepcionProductoId == datos.RecepcionProductoId). ToList(); }); return(recepcionProductos); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene los parametros necesarios para /// la ejecucion del procedimiento almacenado /// RecepcionProducto_ObtenerPorFolioOrganizacion /// </summary> /// <param name="recepcionProducto"></param> /// <returns></returns> internal static Dictionary <string, object> ObtenerParametrosObtenerPorFolioOrganizacion(RecepcionProductoInfo recepcionProducto) { Dictionary <string, object> parametros; try { Logger.Info(); parametros = new Dictionary <string, object> { { "@FolioRecepcion", recepcionProducto.FolioRecepcion }, { "@OrganizacionID", recepcionProducto.Almacen.Organizacion.OrganizacionID } }; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
internal static Dictionary <string, object> ObtenerParametrosObtenerRecepcionPorFolio(RecepcionProductoInfo recepcionProductoCompra) { Dictionary <string, object> parametros; try { Logger.Info(); parametros = new Dictionary <string, object> { { "@FolioOrdenCompra", recepcionProductoCompra.FolioOrdenCompra }, { "@Activo", EstatusEnum.Activo } }; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(parametros); }
internal bool GuardarInventario(RecepcionProductoInfo recepcionProducto) { try { AlmacenBL almacenBl = new AlmacenBL(); AlmacenInventarioBL almacenInventarioBl = new AlmacenInventarioBL(); foreach (var recepcionProductodetalle in recepcionProducto.ListaRecepcionProductoDetalle) { AlmacenInfo almacen = almacenBl.ObtenerPorID(recepcionProducto.Almacen.AlmacenID); List <AlmacenInventarioInfo> listaAlmacenlmacenInventario = almacenInventarioBl.ObtienePorAlmacenId(almacen); if (listaAlmacenlmacenInventario != null) { List <AlmacenInventarioInfo> almacenInventarioListaResultado = listaAlmacenlmacenInventario.Where( registro => registro.ProductoID == recepcionProductodetalle.Producto.ProductoId) .ToList(); if (almacenInventarioListaResultado.Count > 0) { var almacenInventario = almacenInventarioListaResultado[0]; almacenInventario.Cantidad = almacenInventario.Cantidad + recepcionProductodetalle.Cantidad; almacenInventario.Importe = almacenInventario.Importe + recepcionProductodetalle.Importe; almacenInventario.PrecioPromedio = almacenInventario.Importe / almacenInventario.Cantidad; almacenInventario.UsuarioModificacionID = recepcionProducto.UsuarioCreacion.UsuarioID; almacenInventarioBl.Actualizar(almacenInventario); } else { var almacenInventarioNuevo = new AlmacenInventarioInfo(); almacenInventarioNuevo.Almacen = recepcionProducto.Almacen; almacenInventarioNuevo.AlmacenID = recepcionProducto.Almacen.AlmacenID; almacenInventarioNuevo.Producto = recepcionProductodetalle.Producto; almacenInventarioNuevo.ProductoID = recepcionProductodetalle.Producto.ProductoId; almacenInventarioNuevo.Cantidad = recepcionProductodetalle.Cantidad; almacenInventarioNuevo.Importe = recepcionProductodetalle.Importe; almacenInventarioNuevo.PrecioPromedio = almacenInventarioNuevo.Importe / almacenInventarioNuevo.Cantidad; almacenInventarioNuevo.UsuarioCreacionID = recepcionProducto.UsuarioCreacion.UsuarioID; almacenInventarioBl.Crear(almacenInventarioNuevo); } } else { var almacenInventarioNuevo = new AlmacenInventarioInfo(); almacenInventarioNuevo.Almacen = recepcionProducto.Almacen; almacenInventarioNuevo.AlmacenID = recepcionProducto.Almacen.AlmacenID; almacenInventarioNuevo.Producto = recepcionProductodetalle.Producto; almacenInventarioNuevo.ProductoID = recepcionProductodetalle.Producto.ProductoId; almacenInventarioNuevo.Cantidad = recepcionProductodetalle.Cantidad; almacenInventarioNuevo.Importe = recepcionProductodetalle.Importe; almacenInventarioNuevo.PrecioPromedio = almacenInventarioNuevo.Importe / almacenInventarioNuevo.Cantidad; almacenInventarioNuevo.UsuarioCreacionID = recepcionProducto.UsuarioCreacion.UsuarioID; almacenInventarioBl.Crear(almacenInventarioNuevo); } } return(true); } catch (Exception ex) { Logger.Error(ex); } return(false); }