public Boolean ModificarDB(in_Ing_Egr_Inven_Info info, ref string msgs) { try { in_Ing_Egr_Inven_det_Data dataDet = new in_Ing_Egr_Inven_det_Data(); in_Parametro_Bus busParam = new in_Parametro_Bus(); in_Parametro_Info infoParam = new in_Parametro_Info(); string IdEstadoAproba_Param = ""; infoParam = busParam.Get_Info_Parametro(info.IdEmpresa); if (InfoParam.IdEmpresa == 0) { return(false); } if (info.signo == "+") { IdEstadoAproba_Param = infoParam.IdEstadoAproba_x_Ing; } else { IdEstadoAproba_Param = infoParam.IdEstadoAproba_x_Egr; } Boolean res = false; if (Validar_objeto_IngEgr(info, ref mensaje)) { //arreglando los id del detalle en caso q no venga sin id foreach (var item in info.listIng_Egr) { item.IdEmpresa = info.IdEmpresa; item.IdSucursal = info.IdSucursal; item.IdNumMovi = info.IdNumMovi; item.IdMovi_inven_tipo = info.IdMovi_inven_tipo; item.signo = info.signo; in_producto_Bus BusProducto = new in_producto_Bus(); in_Producto_Info InfoProdu = BusProducto.Get_info_Product(info.IdEmpresa, item.IdProducto); if (item.IdEstadoAproba == null || item.IdEstadoAproba == "") { if (info.signo == "+") { IdEstadoAproba_Param = infoParam.IdEstadoAproba_x_Ing; } else { IdEstadoAproba_Param = infoParam.IdEstadoAproba_x_Egr; } item.IdEstadoAproba = Get_EstadoApro(Convert.ToInt32(info.IdEmpresa), Convert.ToInt32(info.IdSucursal), Convert.ToInt32(info.IdBodega), IdEstadoAproba_Param); } if (item.IdUnidadMedida_sinConversion == null || item.IdUnidadMedida_sinConversion == "" || item.IdUnidadMedida == null || item.IdUnidadMedida == "") { item.IdUnidadMedida = InfoProdu.IdUnidadMedida; item.IdUnidadMedida_Consumo = InfoProdu.IdUnidadMedida_Consumo; item.IdUnidadMedida_sinConversion = InfoProdu.IdUnidadMedida; } if (item.mv_costo_sinConversion == 0 || item.signo == "-") { in_producto_x_tb_bodega_Costo_Historico_Bus BusProd_x_Costo = new in_producto_x_tb_bodega_Costo_Historico_Bus(); in_producto_x_tb_bodega_Costo_Historico_Info Info_Produc_x_Costo = new in_producto_x_tb_bodega_Costo_Historico_Info(); Info_Produc_x_Costo = BusProd_x_Costo.get_UltimoCosto_x_Producto_Bodega(item.IdEmpresa, item.IdSucursal, Convert.ToInt32(item.IdBodega), item.IdProducto, info.cm_fecha); item.mv_costo = Info_Produc_x_Costo.costo; item.mv_costo_sinConversion = Info_Produc_x_Costo.costo; } #region Convierte costo y cantidad en la unidad de consumo ValorEquiv = 0; InfoUni_Equiv = busUni_Equiv.Get_Info_in_UnidadMedida_Equiv_conversion(item.IdUnidadMedida_sinConversion, InfoProdu.IdUnidadMedida_Consumo); ValorEquiv = InfoUni_Equiv.valor_equiv == 0 ? 1 : InfoUni_Equiv.valor_equiv; item.dm_cantidad = item.dm_cantidad_sinConversion * ValorEquiv; item.mv_costo = item.mv_costo_sinConversion / ValorEquiv; item.IdUnidadMedida = InfoProdu.IdUnidadMedida_Consumo; #endregion } if (dataDet.EliminarDB(info.IdEmpresa, info.IdSucursal, info.IdMovi_inven_tipo, info.IdNumMovi, ref msgs)) { info.IdUsuarioUltModi = param.IdUsuario; if (odata.ModificarDB(info, ref msgs)) { foreach (var item in info.listIng_Egr) { item.Secuencia = 0; item.IdEstadoAproba = Get_EstadoApro(Convert.ToInt32(info.IdEmpresa), Convert.ToInt32(info.IdSucursal), Convert.ToInt32(info.IdBodega), IdEstadoAproba_Param); if (item.IdEmpresa == null || item.IdEmpresa == 0) { item.IdEmpresa = Convert.ToInt32(info.IdEmpresa); } if (item.IdSucursal == null || item.IdSucursal == 0) { item.IdSucursal = Convert.ToInt32(info.IdSucursal); } if (item.IdBodega == null || item.IdBodega == 0) { item.IdBodega = Convert.ToInt32(info.IdBodega); } if (item.IdMovi_inven_tipo == null || item.IdMovi_inven_tipo == 0) { item.IdMovi_inven_tipo = Convert.ToInt32(info.IdMovi_inven_tipo); } if (item.IdNumMovi == null || item.IdNumMovi == 0) { item.IdNumMovi = Convert.ToInt32(info.IdNumMovi); } } if (dataDet.GuardarDB(info.listIng_Egr)) { res = true; res = procesoGenerarMoviInve(info, info.IdNumMovi, ref mensaje); } } } } return(res); } 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(in_Ing_Egr_Inven_Bus) }; } }
Boolean Genera_Inventario_x_IngEgr_Inven(in_Ing_Egr_Inven_Info info, ref string msg) { try { //graba inventario in_movi_inve_Info info_MoviInve = new in_movi_inve_Info(); info_MoviInve.IdEmpresa = info.IdEmpresa; info_MoviInve.IdSucursal = info.IdSucursal; info_MoviInve.IdBodega = (info.IdBodega == null && info.listIng_Egr.Count != 0) ? Convert.ToInt32(info.listIng_Egr.FirstOrDefault().IdBodega) : Convert.ToInt32(info.IdBodega); info_MoviInve.IdMovi_inven_tipo = info.IdMovi_inven_tipo; in_movi_inven_tipo_Info Info_moviInvTipo = new in_movi_inven_tipo_Info(); in_movi_inven_tipo_Bus bus_moviInvTipo = new in_movi_inven_tipo_Bus(); Info_moviInvTipo = bus_moviInvTipo.Get_Info_movi_inven_tipo(info.IdEmpresa, info.IdMovi_inven_tipo); if (Info_moviInvTipo.Genera_Movi_Inven == true) { if (Info_moviInvTipo == null) { msg = "No existen Tipos de Movimientos de Inventario"; return(false); } info_MoviInve.IdMovi_inven_tipo = Info_moviInvTipo.IdMovi_inven_tipo; info_MoviInve.CodMoviInven = Info_moviInvTipo.Codigo; info_MoviInve.cm_tipo = Info_moviInvTipo.cm_tipo_movi; info_MoviInve.cm_observacion = info.cm_observacion; info_MoviInve.cm_fecha = info.cm_fecha; info_MoviInve.IdEmpresa_Ing_Egr = info.IdEmpresa; info_MoviInve.IdSucursal_Ing_Egr = info.IdSucursal; info_MoviInve.IdBodega_Ing_Egr = info.IdBodega; info_MoviInve.IdMovi_inven_tipo_Ing_Egr = info.IdMovi_inven_tipo; info_MoviInve.IdNumMovi_Ing_Egr = info.IdNumMovi; info_MoviInve.IdMotivo_inv = info.IdMotivo_Inv; //detalle List <in_movi_inve_detalle_Info> list_inveDet = new List <in_movi_inve_detalle_Info>(); foreach (var item in info.listIng_Egr) { in_movi_inve_detalle_Info infoMovDet = new in_movi_inve_detalle_Info(); infoMovDet.IdProducto = item.IdProducto; infoMovDet.dm_cantidad = item.dm_cantidad; infoMovDet.dm_observacion = (item.dm_observacion == null) ? "" : item.dm_observacion; infoMovDet.mv_costo = item.mv_costo; infoMovDet.IdCentroCosto = item.IdCentroCosto; infoMovDet.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo; infoMovDet.IdUnidadMedida = item.IdUnidadMedida; infoMovDet.mv_costo_sinConversion = item.mv_costo_sinConversion; infoMovDet.dm_cantidad_sinConversion = item.dm_cantidad_sinConversion; infoMovDet.IdUnidadMedida_sinConversion = item.IdUnidadMedida_sinConversion; infoMovDet.IdPunto_Cargo = item.IdPunto_cargo; infoMovDet.IdPunto_cargo_grupo = item.IdPunto_cargo_grupo; infoMovDet.IdMotivo_Inv = item.IdMotivo_Inv; //Campos para saber cual movimiento esta devolviendo este infoMovDet.IdEmpresa_dev = item.IdEmpresa_dev; infoMovDet.IdSucursal_dev = item.IdSucursal_dev; infoMovDet.IdBodega_dev = item.IdBodega_dev; infoMovDet.IdMovi_inven_tipo_dev = item.IdMovi_inven_tipo_dev; infoMovDet.IdNumMovi_dev = item.IdNumMovi_dev; infoMovDet.Secuencia_dev = item.Secuencia_dev; infoMovDet.IdOrdenCompra = (item.IdOrdenCompra == null) ? 0 : Convert.ToDecimal(item.IdOrdenCompra); list_inveDet.Add(infoMovDet); } info_MoviInve.listmovi_inve_detalle_Info = list_inveDet; //detalle in_movi_inve_Bus bus_MovInve = new in_movi_inve_Bus(); decimal idMoviInven; idMoviInven = 0; string mensaje_cbte_cble = ""; if (bus_MovInve.GrabarDB(info_MoviInve, ref idMoviInven, ref mensaje, ref mensaje_cbte_cble)) { // actualizar item Movimientos en in_Ing_Egr_Inven_det foreach (var item in info_MoviInve.listmovi_inve_detalle_Info) { int conta = 0; foreach (var item2 in info.listIng_Egr) { if (item2.IdEmpresa_inv == null && item2.IdSucursal_inv == null && item2.IdBodega_inv == null && item2.IdMovi_inven_tipo_inv == null && item2.IdNumMovi_inv == null && item2.secuencia_inv == null) { item2.IdEmpresa_inv = item.IdEmpresa; item2.IdSucursal_inv = item.IdSucursal; item2.IdBodega_inv = item.IdBodega; item2.IdMovi_inven_tipo_inv = item.IdMovi_inven_tipo; item2.IdNumMovi_inv = idMoviInven; item2.secuencia_inv = item.Secuencia; conta = conta + 1; break; } if (conta > 0) { item2.IdEmpresa_inv = null; item2.IdSucursal_inv = null; item2.IdBodega_inv = null; item2.IdMovi_inven_tipo_inv = null; item2.IdNumMovi_inv = null; item2.secuencia_inv = null; break; } } } string msgs = ""; // odata.ModificarCabecera_IdMovi_Inven_x_IngEgr(info, ref msgs); in_Ing_Egr_Inven_det_Data odataDet = new in_Ing_Egr_Inven_det_Data(); odataDet.ModificarDetalle_IdMovi_Inven_x_IngEgr(info.listIng_Egr, ref msgs); } else { msg = mensaje + "-" + mensaje_cbte_cble; return(false); } } 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("", "Genera_Inventario_x_IngEgr_Inven", ex.Message), ex) { EntityType = typeof(in_Ing_Egr_Inven_Bus) }; } }