public Boolean ModificarDB(in_movi_inven_tipo_x_tb_bodega_Info lst, int IdEmpresa, in_movi_inven_tipo_Info moviI, ref string mensaje) { try { EntitiesInventario oege = new EntitiesInventario(); using (EntitiesInventario contex = new EntitiesInventario()) { var address = new in_movi_inven_tipo_x_tb_bodega(); address.IdBodega = lst.IdBodega; address.IdEmpresa = IdEmpresa; address.IdCtaCble = lst.IdCtaCble; address.IdMovi_inven_tipo = moviI.IdMovi_inven_tipo; address.IdSucucursal = lst.IdSucucursal; contex.in_movi_inven_tipo_x_tb_bodega.Add(address); contex.SaveChanges(); contex.Dispose(); mensaje = "Guardado con exito"; return(true); } } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; mensaje = "Error ocurrido por: " + ex.ToString(); throw new Exception(mensaje); } }
public Boolean AnularDB(List <in_movi_inve_detalle_Info> ListMoviInfo, ref string mensaje) { try { foreach (in_movi_inve_detalle_Info MoviInfo in ListMoviInfo) { using (EntitiesInventario context = new EntitiesInventario()) { var contact = context.in_movi_inve_detalle.FirstOrDefault(VMovi => VMovi.IdEmpresa == MoviInfo.IdEmpresa && VMovi.IdSucursal == MoviInfo.IdSucursal && VMovi.IdBodega == MoviInfo.IdBodega && VMovi.IdMovi_inven_tipo == MoviInfo.IdMovi_inven_tipo && VMovi.IdNumMovi == MoviInfo.IdNumMovi && VMovi.Secuencia == MoviInfo.Secuencia); if (contact != null) { contact.dm_observacion = " ***ANULADO***" + contact.dm_observacion.Trim(); context.SaveChanges(); context.Dispose(); } } } mensaje = "Anulacion Exitosa.."; return(true); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; mensaje = "Error al Anular: " + ex.Message; throw new Exception(ex.ToString()); } }
public Boolean ModificarDB(List <in_movi_inven_tipo_x_tb_bodega_Info> lst, ref string mensaje) { try { foreach (var item in lst) { using (EntitiesInventario contex = new EntitiesInventario()) { var address = contex.in_movi_inven_tipo_x_tb_bodega.FirstOrDefault(v => v.IdBodega == item.IdBodega && v.IdSucucursal == item.IdSucucursal && v.IdEmpresa == item.IdEmpresa && v.IdMovi_inven_tipo == item.IdMovi_inven_tipo); if (address != null) { address.IdBodega = item.IdBodega; address.IdEmpresa = item.IdEmpresa; address.IdCtaCble = item.IdCtaCble; address.IdMovi_inven_tipo = item.IdMovi_inven_tipo; address.IdSucucursal = item.IdSucucursal; contex.SaveChanges(); contex.Dispose(); mensaje = "Guardado con exito"; } } } return(true); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; mensaje = ex.Message + "::::::::::::::::::::" + ex.ToString(); throw new Exception(mensaje); } }
public Boolean GrabarDB(List <in_Producto_Composicion_Info> ListInfo, int IdProductoPadre, ref string mensaje) { try { using (EntitiesInventario context = new EntitiesInventario()) { foreach (var item in ListInfo) { var address = new in_Producto_Composicion(); address.IdEmpresa = item.IdEmpresa; address.IdProductoPadre = IdProductoPadre; address.IdProductoHijo = item.IdProductoHijo; address.Cantidad = item.Cantidad; context.in_Producto_Composicion.Add(address); context.SaveChanges(); } context.Dispose(); mensaje = "Guardado con exito"; return(true); } } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; throw new Exception(mensaje); } }
public Boolean CambiaEstadoProcesado(List <in_PrecargaItemsDetalle_Info> lmDetalleInfo, int IdEmpresa) { try { using (EntitiesInventario context = new EntitiesInventario()) { foreach (var item in lmDetalleInfo) { var contact = context.in_PrecargaItemsOrdenCompra_det.FirstOrDefault(A => A.IdEmpresa == IdEmpresa && A.IdSucursal == item.IdSucursal && A.IdPrecarga == item.IdPrecarga && A.Secuencia == item.Secuencia); if (contact != null) { contact.EstadoProcesado = "S"; context.SaveChanges(); } } context.Dispose(); } return(true); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; throw new Exception(mensaje); } }
public Boolean GrabarDB(in_producto_x_cp_proveedor_Info item, int IdEmpresa, decimal IdProducto, ref string mensaje) { try { using (EntitiesInventario contex = new EntitiesInventario()) { var address = new in_producto_x_cp_proveedor(); address.IdEmpresa_prod = item.IdEmpresa_prod; address.IdEmpresa_prov = IdEmpresa; address.IdProducto = IdProducto; address.IdProveedor = item.IdProveedor; address.NomProducto_en_Proveedor = item.NomProducto_en_Proveedor; contex.in_producto_x_cp_proveedor.Add(address); contex.SaveChanges(); contex.Dispose(); mensaje = "Guardado con exito"; return(true); } } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; throw new Exception(mensaje); } }
public bool guardarDB(int IdEmpresa, List <tbl_producto_Info> Lista) { try { int IdSCI = 1; Entities_mobileSCI Context = new Entities_mobileSCI(); EntitiesInventario Context_i = new EntitiesInventario(); foreach (var item in Lista) { tbl_producto Entity = new tbl_producto { IdEmpresaSCI = IdEmpresa, IdSCI = IdSCI++, IdEmpresa = IdEmpresa, IdProducto = item.IdProducto }; Context.tbl_producto.Add(Entity); Context_i.in_Producto.Where(q => q.IdEmpresa == Entity.IdEmpresa && q.IdProducto == Entity.IdProducto).FirstOrDefault().mobile_cod_produccion = item.mobile_cod_produccion; } Context.SaveChanges(); Context_i.SaveChanges(); Context_i.Dispose(); Context.Dispose(); return(true); } catch (Exception) { throw; } }
public Boolean GrabarDB(in_movi_inven_tipo_x_tb_bodega_Info lst, int idEmpresa, in_movi_inven_tipo_Info moviI, ref string mensaje) { try { EntitiesInventario oege = new EntitiesInventario(); using (EntitiesInventario contex = new EntitiesInventario()) { var address = new in_movi_inven_tipo_x_tb_bodega(); address.IdBodega = lst.IdBodega; address.IdEmpresa = idEmpresa; if (lst.IdCtaCble != "") { address.IdCtaCble = lst.IdCtaCble; } address.IdMovi_inven_tipo = moviI.IdMovi_inven_tipo; address.IdSucucursal = lst.IdSucucursal; contex.in_movi_inven_tipo_x_tb_bodega.Add(address); contex.SaveChanges(); contex.Dispose(); mensaje = "Guardado con exito"; return(true); } } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; try { using (EntitiesInventario contex = new EntitiesInventario()) { in_movi_inven_tipo_x_tb_bodega Consulta = new in_movi_inven_tipo_x_tb_bodega(); Consulta = contex.in_movi_inven_tipo_x_tb_bodega.FirstOrDefault(v => v.IdEmpresa == idEmpresa && v.IdSucucursal == lst.IdSucucursal && v.IdBodega == lst.IdBodega && v.IdMovi_inven_tipo == moviI.IdMovi_inven_tipo); if (Consulta != null) { Consulta.IdCtaCble = lst.IdCtaCble; contex.SaveChanges(); } return(true); } } catch (Exception) { oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; throw new Exception(mensaje); } } }
public Boolean GrabarDB(List <in_presupuestoDetalle_Info> lmDetalleInfo, int IdEmpresa, int IdPresupuesto, ref string msg) { try { using (EntitiesInventario context = new EntitiesInventario()) { foreach (var item in lmDetalleInfo) { var address = new in_presupuesto_det(); address.IdEmpresa = IdEmpresa; address.IdSucursal = item.IdSucursal; address.IdPresupuesto = IdPresupuesto; address.Secuencia = item.Secuencia; address.IdProducto = item.IdProducto; address.dp_Cantidad = item.dp_Cantidad; address.dp_costo = item.dp_costo; address.dp_porc_des = item.dp_porc_des; address.dp_descuento = item.dp_descuento; address.dp_subtotal = item.dp_subtotal; address.dp_iva = item.dp_iva; address.dp_total = item.dp_total; address.dp_ManejaIva = item.dp_ManejaIva; address.dp_Costeado = item.dp_Costeado; address.dp_costo_promedio_hist = item.dp_costo_promedio_hist; address.dp_peso = item.dp_peso; address.dp_observacion = item.dp_observacion; context.in_presupuesto_det.Add(address); context.SaveChanges(); } context.Dispose(); } msg = "Guardado con exito"; return(true); } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; throw new Exception(mensaje); } }
public Boolean GrabarDB(List<in_RecepcionMaterialesDet_Info> lmDetalleInfo, int idempresa, decimal IdRecepcionMaterial, ref string msgd) { try { using (EntitiesInventario context = new EntitiesInventario()) { foreach (var item in lmDetalleInfo) { var address = new in_recepcion_material_det(); address.IdEmpresa = idempresa; address.IdSucursal = item.IdSucursal; address.IdRecepcionMaterial = IdRecepcionMaterial; address.Secuencia = item.Secuencia; address.IdProducto = item.IdProducto; address.do_Cantidad = item.do_Cantidad; address.IdOrdenCompra = item.IdOrdenCompra; address.Secuencia = item.Secuencia; address.re_CantRecibida = item.re_CantRecibida; address.re_Saldo = item.re_Saldo; context.in_recepcion_material_det.Add(address); context.SaveChanges(); } context.Dispose(); } msgd = "Guardado con exito"; return true; } catch (Exception ex) { string arreglo = ToString(); tb_sis_Log_Error_Vzen_Data oDataLog = new tb_sis_Log_Error_Vzen_Data(); tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString() + " " + ex.Message; throw new Exception(mensaje); } }
public bool Aprobar(int IdEmpresa, List <tbl_movimientos_det_Info> Lista, string IdUsuario) { Entities_mobileSCI db_mobile = new Entities_mobileSCI(); EntitiesInventario db_inv = new EntitiesInventario(); try { var Entity_p = db_inv.in_parametro.Where(q => q.IdEmpresa == IdEmpresa).FirstOrDefault(); if (Entity_p == null || Entity_p.IdMovi_inven_tipo_mobile_ing == null || Entity_p.IdMovi_inven_tipo_mobile_egr == null) { return(false); } var Entity_motivo_ing = db_inv.in_Motivo_Inven.Where(q => q.IdEmpresa == IdEmpresa && q.Tipo_Ing_Egr == "ING" && q.Genera_Movi_Inven == "S").FirstOrDefault(); if (Entity_motivo_ing == null) { return(false); } var Entity_motivo_egr = db_inv.in_Motivo_Inven.Where(q => q.IdEmpresa == IdEmpresa && q.Tipo_Ing_Egr == "EGR" && q.Genera_Movi_Inven == "S" && q.es_Inven_o_Consumo == "TIC_CONSU").FirstOrDefault(); if (Entity_motivo_egr == null) { return(false); } #region Ingresos var lst_mov_agrupada = (from q in Lista where q.cantidad > 0 group new { q.IdEmpresa, q.IdSucursal, q.IdBodega, q.Fecha, q.IdSucursal_oc, q.IdOrdenCompra } by new { q.IdEmpresa, q.IdSucursal, q.IdBodega, q.Fecha, q.IdSucursal_oc, q.IdOrdenCompra } into g select new tbl_movimientos_det_Info { IdEmpresa = g.Key.IdEmpresa, IdSucursal = g.Key.IdSucursal, IdBodega = g.Key.IdBodega, Fecha = g.Key.Fecha, IdSucursal_oc = g.Key.IdSucursal_oc, IdOrdenCompra = g.Key.IdOrdenCompra, }).ToList(); foreach (var item in lst_mov_agrupada) { #region Cabecera in_Ing_Egr_Inven Entity_cab = new in_Ing_Egr_Inven { IdEmpresa = item.IdEmpresa, IdSucursal = item.IdSucursal, IdMovi_inven_tipo = Convert.ToInt32(Entity_p.IdMovi_inven_tipo_mobile_ing), IdNumMovi = get_id(item.IdEmpresa, item.IdSucursal, Convert.ToInt32(Entity_p.IdMovi_inven_tipo_mobile_ing)), IdBodega = item.IdBodega, signo = "+", CodMoviInven = "MOBILE", cm_observacion = "Aprobación móvil " + DateTime.Now.ToString("dd/MM/yyyy"), cm_fecha = item.Fecha, Estado = "A", IdMotivo_Inv = Entity_motivo_ing.IdMotivo_Inv, IdUsuario = IdUsuario, Fecha_Transac = DateTime.Now }; db_inv.in_Ing_Egr_Inven.Add(Entity_cab); #endregion #region Detalle int sec = 1; foreach (var mov in Lista.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdBodega == item.IdBodega && q.Fecha == item.Fecha && q.IdSucursal_oc == item.IdSucursal_oc && q.IdOrdenCompra == item.IdOrdenCompra && q.cantidad > 0).ToList()) { in_Ing_Egr_Inven_det Entity_det = new in_Ing_Egr_Inven_det { IdEmpresa = Entity_cab.IdEmpresa, IdSucursal = Entity_cab.IdSucursal, IdMovi_inven_tipo = Entity_cab.IdMovi_inven_tipo, IdNumMovi = Entity_cab.IdNumMovi, Secuencia = sec++, IdBodega = mov.IdBodega, IdProducto = mov.IdProducto, dm_cantidad = mov.cantidad, dm_stock_actu = 0, dm_stock_ante = 0, dm_observacion = "", dm_precio = 0, mv_costo = mov.do_precioFinal, dm_peso = 0, IdCentroCosto = null, IdCentroCosto_sub_centro_costo = null, IdEstadoAproba = "PEND", IdUnidadMedida = mov.IdUnidadMedida, IdEmpresa_oc = mov.IdEmpresa_oc, IdSucursal_oc = mov.IdSucursal_oc, IdOrdenCompra = mov.IdOrdenCompra, Secuencia_oc = mov.secuencia_oc, Motivo_Aprobacion = "Aprobación movil", dm_cantidad_sinConversion = mov.cantidad, IdUnidadMedida_sinConversion = mov.IdUnidadMedida, mv_costo_sinConversion = mov.do_precioFinal, IdMotivo_Inv = null }; db_inv.in_Ing_Egr_Inven_det.Add(Entity_det); tbl_movimientos_det_apro Entity_apro = new tbl_movimientos_det_apro { IdSincronizacion = mov.IdSincronizacion, IdSecuencia = mov.IdSecuencia, IdEmpresa = mov.IdEmpresa, IdSucursal = mov.IdSucursal, IdMovi_inven_tipo = Entity_cab.IdMovi_inven_tipo, IdNumMovi = Entity_cab.IdNumMovi, Secuencia = Entity_det.Secuencia }; db_mobile.tbl_movimientos_det_apro.Add(Entity_apro); var Entity_sinc = db_mobile.tbl_movimientos_det.Where(q => q.IdSincronizacion == mov.IdSincronizacion && q.IdSecuencia == mov.IdSecuencia).FirstOrDefault().Aprobado = true; } #endregion db_inv.SaveChanges(); db_mobile.SaveChanges(); db_inv.spINV_aprobacion_movimiento(Entity_cab.IdEmpresa, Entity_cab.IdSucursal, Entity_cab.IdMovi_inven_tipo, Entity_cab.IdBodega, Entity_cab.IdNumMovi); } #endregion #region Egresos lst_mov_agrupada = (from q in Lista where q.cantidad < 0 group new { q.IdEmpresa, q.IdSucursal, q.IdBodega, q.Fecha } by new { q.IdEmpresa, q.IdSucursal, q.IdBodega, q.Fecha } into g select new tbl_movimientos_det_Info { IdEmpresa = g.Key.IdEmpresa, IdSucursal = g.Key.IdSucursal, IdBodega = g.Key.IdBodega, Fecha = g.Key.Fecha }).ToList(); foreach (var item in lst_mov_agrupada) { #region Cabecera in_Ing_Egr_Inven Entity_cab = new in_Ing_Egr_Inven { IdEmpresa = item.IdEmpresa, IdSucursal = item.IdSucursal, IdMovi_inven_tipo = Convert.ToInt32(Entity_p.IdMovi_inven_tipo_mobile_egr), IdNumMovi = get_id(item.IdEmpresa, item.IdSucursal, Convert.ToInt32(Entity_p.IdMovi_inven_tipo_mobile_egr)), IdBodega = item.IdBodega, signo = "-", CodMoviInven = "MOBILE", cm_observacion = "Aprobación móvil " + DateTime.Now.ToString("dd/MM/yyyy"), cm_fecha = item.Fecha, Estado = "A", IdMotivo_Inv = Entity_motivo_egr.IdMotivo_Inv }; db_inv.in_Ing_Egr_Inven.Add(Entity_cab); #endregion #region Detalle int sec = 1; foreach (var mov in Lista.Where(q => q.IdEmpresa == item.IdEmpresa && q.IdSucursal == item.IdSucursal && q.IdBodega == item.IdBodega && q.Fecha == item.Fecha && q.cantidad < 0).ToList()) { in_Ing_Egr_Inven_det Entity_det = new in_Ing_Egr_Inven_det { IdEmpresa = Entity_cab.IdEmpresa, IdSucursal = Entity_cab.IdSucursal, IdMovi_inven_tipo = Entity_cab.IdMovi_inven_tipo, IdNumMovi = Entity_cab.IdNumMovi, Secuencia = sec++, IdBodega = mov.IdBodega, IdProducto = mov.IdProducto, dm_cantidad = mov.cantidad, dm_stock_actu = 0, dm_stock_ante = 0, dm_observacion = "", dm_precio = 0, mv_costo = mov.do_precioFinal, dm_peso = 0, IdCentroCosto = mov.IdCentroCosto, IdCentroCosto_sub_centro_costo = mov.IdCentroCosto_sub_centro_costo, IdEstadoAproba = "PEND", IdUnidadMedida = mov.IdUnidadMedida, IdEmpresa_oc = mov.IdEmpresa_oc, IdSucursal_inv = mov.IdSucursal_oc, IdOrdenCompra = mov.IdOrdenCompra, Secuencia_oc = mov.secuencia_oc, Motivo_Aprobacion = "Aprobación movil", dm_cantidad_sinConversion = mov.cantidad, IdUnidadMedida_sinConversion = mov.IdUnidadMedida, mv_costo_sinConversion = mov.do_precioFinal, IdMotivo_Inv = null }; db_inv.in_Ing_Egr_Inven_det.Add(Entity_det); tbl_movimientos_det_apro Entity_apro = new tbl_movimientos_det_apro { IdSincronizacion = mov.IdSincronizacion, IdSecuencia = mov.IdSecuencia, IdEmpresa = mov.IdEmpresa, IdSucursal = mov.IdSucursal, IdMovi_inven_tipo = Entity_cab.IdMovi_inven_tipo, IdNumMovi = Entity_cab.IdNumMovi, Secuencia = Entity_det.Secuencia }; db_mobile.tbl_movimientos_det_apro.Add(Entity_apro); var Entity_sinc = db_mobile.tbl_movimientos_det.Where(q => q.IdSincronizacion == mov.IdSincronizacion && q.IdSecuencia == mov.IdSecuencia).FirstOrDefault().Aprobado = true; } #endregion db_inv.SaveChanges(); db_mobile.SaveChanges(); db_inv.spINV_aprobacion_movimiento(Entity_cab.IdEmpresa, Entity_cab.IdSucursal, Entity_cab.IdMovi_inven_tipo, Entity_cab.IdBodega, Entity_cab.IdNumMovi); } #endregion return(true); } catch (Exception) { db_inv.Dispose(); db_mobile.Dispose(); throw; } }
public List <tbl_producto_Info> get_list(int IdEmpresa, bool mostrar_no_asignados) { try { List <tbl_producto_Info> Lista; EntitiesInventario Context_g = new EntitiesInventario(); List <in_Producto_Info> lst_producto = (from p in Context_g.in_Producto join c in Context_g.in_categorias on new { p.IdEmpresa, p.IdCategoria } equals new { c.IdEmpresa, c.IdCategoria } join l in Context_g.in_linea on new { p.IdEmpresa, p.IdCategoria, p.IdLinea } equals new { l.IdEmpresa, l.IdCategoria, l.IdLinea } where p.IdEmpresa == IdEmpresa select new in_Producto_Info { IdEmpresa = p.IdEmpresa, IdProducto = p.IdProducto, pr_descripcion = p.pr_descripcion, nom_Categoria = c.ca_Categoria, nom_Linea = l.nom_linea, mobile_cod_produccion = p.mobile_cod_produccion }).ToList(); Context_g.Dispose(); Entities_mobileSCI context_m = new Entities_mobileSCI(); List <tbl_producto_Info> lst_filtro = (from q in context_m.tbl_producto where q.IdEmpresaSCI == IdEmpresa select new tbl_producto_Info { IdEmpresa = q.IdEmpresa, IdProducto = q.IdProducto, }).ToList(); if (mostrar_no_asignados) { Lista = (from q in lst_producto join b in lst_filtro on new { q.IdEmpresa, q.IdProducto } equals new { b.IdEmpresa, b.IdProducto } into gr from p in gr.DefaultIfEmpty() where q.IdEmpresa == IdEmpresa select new tbl_producto_Info { IdEmpresa = q.IdEmpresa, IdProducto = q.IdProducto, nom_producto = q.pr_descripcion, seleccionado = p == null ? false : true, nom_categoria = q.nom_Categoria, nom_linea = q.nom_Linea, mobile_cod_produccion = q.mobile_cod_produccion }).ToList(); } else { Lista = (from q in lst_filtro join b in lst_producto on new { q.IdEmpresa, q.IdProducto } equals new { b.IdEmpresa, b.IdProducto } into gr from p in gr.DefaultIfEmpty() where q.IdEmpresa == IdEmpresa select new tbl_producto_Info { IdEmpresa = q.IdEmpresa, IdProducto = q.IdProducto, nom_producto = p.pr_descripcion, seleccionado = true, nom_categoria = p.nom_Categoria, nom_linea = p.nom_Linea, mobile_cod_produccion = p.mobile_cod_produccion }).ToList(); } context_m.Dispose(); return(Lista); } catch (Exception) { throw; } }