public List <fa_orden_Desp_det_x_fa_pedido_det_Info> Get_List_fa_orden_Desp_det_x_fa_pedido_det_x_Producto(fa_orden_Desp_Info info) { List <fa_orden_Desp_det_x_fa_pedido_det_Info> lst = new List <fa_orden_Desp_det_x_fa_pedido_det_Info>(); try { using (EntitiesFacturacion context = new EntitiesFacturacion()) { var contact = from q in context.fa_orden_Desp_det_x_fa_pedido_det where q.pe_IdEmpresa == info.IdEmpresa && q.pe_IdSucursal == info.IdSucursal && q.pe_IdBodega == info.IdBodega && q.pe_IdPedido == info.IdPedido && q.pe_IdProducto == info.IdProducto select q; foreach (var item in contact) { fa_orden_Desp_det_x_fa_pedido_det_Info temp = new fa_orden_Desp_det_x_fa_pedido_det_Info(); temp.od_cantidad = item.od_cantidad; temp.od_IdBodega = item.od_IdBodega; temp.od_IdEmpresa = item.od_IdEmpresa; temp.od_IdOrdenDespacho = item.od_IdOrdenDespacho; temp.od_IdProducto = item.od_IdProducto; temp.od_IdSucursal = item.od_IdSucursal; temp.od_Secuencia = item.od_Secuencia; temp.pe_IdBodega = item.pe_IdBodega; temp.pe_IdEmpresa = item.pe_IdEmpresa; temp.pe_IdPedido = item.pe_IdPedido; temp.pe_IdProducto = item.pe_IdProducto; temp.pe_IdSucursal = item.pe_IdSucursal; temp.pe_Secuencia = item.pe_Secuencia; lst.Add(temp); } } return(lst); } 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); mensaje = ex.ToString(); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); throw new Exception(ex.ToString()); } }
public Boolean ModificarDB(fa_pedido_Info info, ref string msg) { try { fa_pedido_det_Data pedido_data = new fa_pedido_det_Data(); List <fa_pedido_det_Info> listaAux = new List <fa_pedido_det_Info>(); listaAux = pedido_data.Get_List_pedido_det(info.IdEmpresa, info.IdSucursal, info.IdBodega, info.IdPedido); #region variables List para verificar ordenes despacho List <fa_orden_Desp_det_x_fa_pedido_det_Info> ListaOrdenDEspachoxPedido = new List <fa_orden_Desp_det_x_fa_pedido_det_Info>(); List <fa_orden_Desp_det_x_fa_pedido_det_Info> lstemporal = new List <fa_orden_Desp_det_x_fa_pedido_det_Info>(); #endregion #region verificar ordenes de despacho para Talme fa_orden_Desp_det_x_fa_pedido_det_Data odata = new fa_orden_Desp_det_x_fa_pedido_det_Data(); fa_orden_Desp_Info infoPedido = new fa_orden_Desp_Info(); infoPedido.IdEmpresa = info.IdEmpresa; infoPedido.IdBodega = info.IdBodega; infoPedido.IdSucursal = info.IdSucursal; infoPedido.IdPedido = info.IdPedido; ListaOrdenDEspachoxPedido = odata.Get_List_fa_orden_Desp_det_x_fa_pedido_det_x_Pedido(infoPedido); if (ListaOrdenDEspachoxPedido.Count() == 0) { return(data.ModificarDB(info, ref msg)); } else { foreach (var itemODP in ListaOrdenDEspachoxPedido) { fa_orden_Desp_det_x_fa_pedido_det_Info temp = new fa_orden_Desp_det_x_fa_pedido_det_Info(); temp.od_cantidad = itemODP.od_cantidad; temp.od_IdBodega = itemODP.od_IdBodega; temp.od_IdEmpresa = itemODP.od_IdEmpresa; temp.od_IdOrdenDespacho = itemODP.od_IdOrdenDespacho; temp.od_IdProducto = itemODP.od_IdProducto; temp.od_IdSucursal = itemODP.od_IdSucursal; temp.od_Secuencia = itemODP.od_Secuencia; temp.pe_IdBodega = itemODP.pe_IdBodega; temp.pe_IdEmpresa = itemODP.pe_IdEmpresa; temp.pe_IdPedido = itemODP.pe_IdPedido; temp.pe_IdProducto = itemODP.pe_IdProducto; temp.pe_IdSucursal = itemODP.pe_IdSucursal; temp.pe_Secuencia = itemODP.pe_Secuencia; lstemporal.Add(temp); } #region Elimina los datos de la tabla "fa_orden_Desp_det_x_fa_pedido_det" fa_orden_Desp_det_x_fa_pedido_det_Data odata1 = new fa_orden_Desp_det_x_fa_pedido_det_Data(); fa_orden_Desp_Info info1 = new fa_orden_Desp_Info(); info1.ListaAuxiliar = ListaOrdenDEspachoxPedido; odata1.EliminarDB(info1); #endregion #region asigno el valor de las columnas "Esta_en_Base" y "Tiene_Despacho" foreach (var item1 in listaAux) { foreach (var item2 in info.lista_detalle) { if (item1.IdProducto == item2.IdProducto && item1.Secuencial == item2.Secuencial) { item2.Tiene_Despacho = item1.Tiene_Despacho; item2.Esta_en_Base = item1.Esta_en_Base; } } } #endregion #region buscar max secuencia detalle pedido fa_pedido_det_Data odatape = new fa_pedido_det_Data(); int SecuenciaMax = 0; SecuenciaMax = odatape.GetIdPedido(info.IdEmpresa, info.IdSucursal, info.IdBodega, info.IdPedido); #endregion #region asigno el nuevo secuencial al nuevo item en detalle pedido foreach (var item2 in info.lista_detalle) { if (item2.IdProducto != 0) { if (item2.Esta_en_Base == "N" || item2.Esta_en_Base == null) { SecuenciaMax = SecuenciaMax + 1; item2.Secuencial = SecuenciaMax; } } } #endregion #region Grabo el nuevo detalle pedido in_producto_x_tb_bodega_Data data_producto_bodega = new in_producto_x_tb_bodega_Data(); (from q in listaAux select q).ToList().ForEach(q => q.dp_cantidad = q.dp_cantidad * -1); data_producto_bodega.ModificarDB(listaAux); foreach (var item in listaAux) { pedido_data.EliminarDB(item, ref msg); } data_producto_bodega.ModificarDB(info.lista_detalle); foreach (var item in info.lista_detalle) { if (item.IdProducto != 0) { pedido_data.GrabarDB(item, ref msg); } } msg = "Se ha procedido actualizar el registro del Pedido #: " + info.IdPedido.ToString() + " exitosamente"; #endregion #region guardo en tabla "fa_orden_Desp_det_x_fa_pedido_det" fa_orden_Desp_det_x_fa_pedido_det_Data odataOD = new fa_orden_Desp_det_x_fa_pedido_det_Data(); fa_orden_Desp_Info Info_OD = new fa_orden_Desp_Info(); foreach (var item in lstemporal) { fa_orden_Desp_det_Info Infotemp = new fa_orden_Desp_det_Info(); Infotemp.IdEmpresa = item.pe_IdEmpresa; Infotemp.IdSucursal = item.pe_IdSucursal; Infotemp.IdBodega = item.pe_IdBodega; Infotemp.IdProducto = item.pe_IdProducto; Infotemp.IdOrdenDespacho = item.od_IdOrdenDespacho; Infotemp.Secuencia = item.od_Secuencia; Infotemp.SecuenciaPedido = item.pe_Secuencia; Infotemp.IdPedido = item.pe_IdPedido; Infotemp.od_cantidad = item.od_cantidad; Info_OD.ListaDetalle.Add(Infotemp); } odataOD.GuardarDB(Info_OD); #endregion } #endregion return(true); } catch (Exception ex) { Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message); throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ModificarDB", ex.Message), ex) { EntityType = typeof(fa_pedido_Bus) }; } }