public Boolean GuardarDB(com_dev_compra_Info Info, ref decimal id, ref string mensaje1) { try { Boolean resGrabar = false; in_movi_inve_Info InfoMoviInve = new in_movi_inve_Info(); decimal IdMoviInven = 0; string msg_cbte = ""; string msg = ""; if (validar_objeto(Info, ref mensaje1)) { resGrabar = Odata.GuardarDB(Info, ref id, ref mensaje1); if (resGrabar) { resGrabar = Odata_det.GuardarDB(Info.lista_detalle, ref mensaje1); paramInfo = ParamComBus.Get_Info_parametro(param.IdEmpresa); InfoMoviInve.IdEmpresa = Info.IdEmpresa; InfoMoviInve.IdSucursal = Info.IdSucursal; InfoMoviInve.IdBodega = Info.IdBodega; InfoMoviInve.cm_anio = Info.dv_fecha.Year; InfoMoviInve.cm_fecha = Info.dv_fecha; InfoMoviInve.cm_mes = Info.dv_fecha.Month; InfoMoviInve.cm_observacion = Info.dv_observacion; InfoMoviInve.cm_tipo = "+"; InfoMoviInve.Estado = "A"; InfoMoviInve.IdMovi_inven_tipo = paramInfo.IdMovi_inven_tipo_dev_compra; InfoMoviInve.IdNumMovi = 0; InfoMoviInve.IdProvedor = Info.IdProveedor; InfoMoviInve.IdUsuario = param.IdUsuario; InfoMoviInve.IdUsuarioUltModi = Info.IdUsuarioUltMod; InfoMoviInve.ip = param.ip; InfoMoviInve.nom_pc = param.nom_pc; InfoMoviInve.CodMoviInven = "DEVxCOM"; InfoMoviInve.listmovi_inve_detalle_Info = new List <in_movi_inve_detalle_Info>(); foreach (var item in Info.lista_detalle) { in_movi_inve_detalle_Info ItemInfo = new in_movi_inve_detalle_Info(); ItemInfo.cm_fecha = InfoMoviInve.cm_fecha; ItemInfo.CodMoviInven = InfoMoviInve.CodMoviInven; ItemInfo.dm_cantidad = item.dv_Cantidad; ItemInfo.dm_observacion = item.dv_observacion; ItemInfo.dm_precio = item.dv_precioCompra; ItemInfo.dm_stock_actu = 0; ItemInfo.dm_stock_ante = 0; ItemInfo.IdBodega = item.IdBodega; ItemInfo.IdEmpresa = item.IdEmpresa; ItemInfo.IdMovi_inven_tipo = InfoMoviInve.IdMovi_inven_tipo; ItemInfo.IdNumMovi = InfoMoviInve.IdNumMovi; ItemInfo.IdProducto = item.IdProducto; ItemInfo.IdSucursal = item.IdSucursal; ItemInfo.mv_costo = 0; ItemInfo.mv_tipo_movi = InfoMoviInve.cm_tipo; ItemInfo.peso = item.dv_peso; ItemInfo.Secuencia = item.Secuencia; ItemInfo.mv_costo = item.dv_precioCompra; InfoMoviInve.listmovi_inve_detalle_Info.Add(ItemInfo); } resGrabar = MoviInven.GrabarDB(InfoMoviInve, ref IdMoviInven, ref msg_cbte, ref msg, true); } } else { resGrabar = false; } return(resGrabar); } 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("", "GuardarDB", ex.Message), ex) { EntityType = typeof(com_dev_compra_Bus) }; } }
public Boolean Actualizar_EstadoReproba(List <com_solicitud_compra_det_aprobacion_Info> LstInfo, List <com_solicitud_compra_det_aprobacion_Info> lstSol_Genera_OC, string validaMotivo, ref string msg) { try { Boolean res = true; if (Validar_objeto_AprobSolComp(LstInfo, validaMotivo, ref msg)) { odata.Actualizar_EstadoReproba(LstInfo, ref msg); if (validaMotivo == "S") { #region Genera Orden Compra //Generar Orden Compra var Query = from q in lstSol_Genera_OC group q by new { q.IdSucursal_x_OC, q.IdProveedor_SC, q.IdMotivo } into grouping select new { grouping.Key, grouping }; foreach (var grp in Query) { if (grp.Key.IdProveedor_SC != 0 && grp.Key.IdMotivo != 0 && grp.Key.IdSucursal_x_OC != 0) { List <com_solicitud_compra_det_aprobacion_Info> listSolxItemSaldo = new List <com_solicitud_compra_det_aprobacion_Info>(); foreach (var item in grp.grouping) { if (item.Checked == true && item.IdEstadoAprobacion == "APR_SOL" && item.IdEstadoPreAprobacion == "APR_SOL") { com_solicitud_compra_det_aprobacion_Info info = new com_solicitud_compra_det_aprobacion_Info(); info.Checked = item.Checked; info.IdEmpresa = item.IdEmpresa; info.IdSucursal_SC = item.IdSucursal_SC; info.IdSucursal_x_OC = item.IdSucursal_x_OC; info.fecha = item.fecha; info.Solicitante = item.Solicitante; info.IdComprador = item.IdComprador; info.IdComprador = item.IdComprador; info.IdPersona_Solicita = item.IdPersona_Solicita; info.IdDepartamento = item.IdDepartamento; info.IdProveedor = Convert.ToDecimal(item.IdProveedor_SC); info.IdMotivo = item.IdMotivo; info.IdSolicitudCompra = item.IdSolicitudCompra; info.IdEstadoAprobacion = item.IdEstadoAprobacion; info.Secuencia = item.Secuencia_SC; info.observacion = item.observacion; //detalle info.IdProducto_SC = item.IdProducto_SC; info.NomProducto_SC = item.NomProducto_SC; info.Cantidad_aprobada = item.Cantidad_aprobada; info.IdCentroCosto = item.IdCentroCosto; info.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo; info.IdPunto_cargo = item.IdPunto_cargo; info.IdUnidadMedida = item.IdUnidadMedida; //nuevo info.do_precioCompra = item.do_precioCompra; info.do_porc_des = item.do_porc_des; info.do_descuento = item.do_descuento; info.do_subtotal = item.do_subtotal; info.do_iva = item.do_iva; info.do_total = item.do_total; info.IdCod_Impuesto_Iva = item.IdCod_Impuesto_Iva; info.do_observacion = item.do_observacion; info.IdEstadoPreAprobacion = item.IdEstadoPreAprobacion; listSolxItemSaldo.Add(info); } } com_ordencompra_local_Info infOrdCom = new com_ordencompra_local_Info(); decimal id = 0; // string msg = ""; var groupByProv = listSolxItemSaldo.GroupBy(proveedor => proveedor.IdProveedor); List <com_solicitud_compra_det_aprobacion_Info> lista; foreach (var item in groupByProv) { var listaAux = item.ToList().FindAll(q => q.Checked == true && q.IdEstadoAprobacion == "APR_SOL" && q.IdEstadoPreAprobacion == "APR_SOL"); if (listaAux.Count() == 0) { } else { lista = new List <com_solicitud_compra_det_aprobacion_Info>(); lista = listaAux.ToList(); // cabecera Orden Compra int x; x = 1; foreach (var item2 in lista) { while (x <= 1) { infOrdCom = new com_ordencompra_local_Info(); infOrdCom.IdEmpresa = item2.IdEmpresa; infOrdCom.IdProveedor = item2.IdProveedor; infOrdCom.Tipo = "LOCAL"; infOrdCom.IdTerminoPago = null; infOrdCom.oc_plazo = 0; infOrdCom.oc_fecha = Convert.ToDateTime(DateTime.Now.ToShortTimeString()); infOrdCom.oc_flete = 0; infOrdCom.oc_observacion = item2.observacion; infOrdCom.Estado = "A"; infOrdCom.oc_fechaVencimiento = item2.fecha; com_parametro_Bus Bus_ParamCompra = new com_parametro_Bus(); com_parametro_Info InfoComDev = new com_parametro_Info(); InfoComDev = Bus_ParamCompra.Get_Info_parametro(item2.IdEmpresa); infOrdCom.IdEstadoAprobacion_cat = InfoComDev.IdEstadoAprobacion_OC; infOrdCom.Solicitante = item2.Solicitante; infOrdCom.IdComprador = item2.IdComprador; infOrdCom.AfectaCosto = "N"; infOrdCom.IdSolicitante = item2.IdPersona_Solicita; infOrdCom.IdEstadoRecepcion_cat = "PEN"; infOrdCom.IdDepartamento = item2.IdDepartamento; cl_parametrosGenerales_Bus param = cl_parametrosGenerales_Bus.Instance; infOrdCom.IdUsuario = param.IdUsuario; com_parametro_Bus bus_param = new com_parametro_Bus(); List <com_parametro_Info> listParam = new List <com_parametro_Info>(); listParam = bus_param.Get_List_parametro(item2.IdEmpresa); var itemParam = listParam.FirstOrDefault(q => q.IdEmpresa == item2.IdEmpresa); //infOrdCom.IdSucursal = itemParam.IdSucursal_x_Aprob_x_SolComp; infOrdCom.IdSucursal = item2.IdSucursal_x_OC; infOrdCom.IdMotivo = item2.IdMotivo; x = x + 1; } } // detalle orden compra List <com_ordencompra_local_det_Info> listDetOrdComp = new List <com_ordencompra_local_det_Info>(); foreach (var item3 in lista) { com_ordencompra_local_det_Info infoDet_Oc = new com_ordencompra_local_det_Info(); infoDet_Oc.IdSucursal = item3.IdSucursal_x_OC; infoDet_Oc.IdProducto = Convert.ToDecimal(item3.IdProducto_SC); infoDet_Oc.do_Cantidad = item3.Cantidad_aprobada; infoDet_Oc.do_Costeado = "N"; infoDet_Oc.do_peso = 0; infoDet_Oc.do_precioCompra = item3.do_precioCompra; infoDet_Oc.do_porc_des = item3.do_porc_des; infoDet_Oc.do_descuento = item3.do_descuento; infoDet_Oc.do_subtotal = item3.do_subtotal; infoDet_Oc.do_iva = item3.do_iva; infoDet_Oc.do_total = item3.do_total; infoDet_Oc.IdCod_Impuesto = item3.IdCod_Impuesto_Iva; infoDet_Oc.do_observacion = item3.do_observacion; infoDet_Oc.IdPunto_cargo = item3.IdPunto_cargo; infoDet_Oc.IdCentroCosto = item3.IdCentroCosto; infoDet_Oc.IdCentroCosto_sub_centro_costo = item3.IdCentroCosto_sub_centro_costo; infoDet_Oc.IdUnidadMedida = item3.IdUnidadMedida; listDetOrdComp.Add(infoDet_Oc); } // detalle solicitud compra List <com_solicitud_compra_det_Info> listDetSoliciComp = new List <com_solicitud_compra_det_Info>(); foreach (var item3 in lista) { com_solicitud_compra_det_Info infoDetSolCom = new com_solicitud_compra_det_Info(); infoDetSolCom.IdEmpresa = item3.IdEmpresa; infoDetSolCom.IdSucursal = item3.IdSucursal_SC; infoDetSolCom.IdSolicitudCompra = item3.IdSolicitudCompra; infoDetSolCom.Secuencia = item3.Secuencia; infoDetSolCom.IdProducto = item3.IdProducto_SC; infoDetSolCom.do_Cantidad = item3.Cantidad_aprobada; infoDetSolCom.NomProducto = item3.NomProducto_SC; infoDetSolCom.IdPunto_cargo = item3.IdPunto_cargo; infoDetSolCom.IdCentroCosto = item3.IdCentroCosto; infoDetSolCom.IdCentroCosto_sub_centro_costo = item3.IdCentroCosto_sub_centro_costo; infoDetSolCom.do_observacion = item3.do_observacion; infoDetSolCom.IdUnidadMedida = item3.IdUnidadMedida; listDetSoliciComp.Add(infoDetSolCom); } // grabar orden de compra com_ordencompra_local_Bus bus_OrdComp = new com_ordencompra_local_Bus(); infOrdCom.listDetalle = listDetOrdComp; infOrdCom.listDetSoliciComp = listDetSoliciComp; if (bus_OrdComp.GuardarDB(infOrdCom, ref id, ref msg)) { msg = "Se ha procedido a grabar el registro de la Orden/Compra #: " + id.ToString() + " exitosamente."; } else { msg = "Error al grabar OC. " + msg; } } } } } #endregion } } else { res = false; } 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("", "Actualizar_EstadoReproba", ex.Message), ex) { EntityType = typeof(com_solicitud_compra_det_aprobacion_Bus) }; } }
public Boolean GuardarDB(com_solicitud_compra_Info info, ref string msg) { try { Boolean res = true; if (validarObjeto(info, ref msg)) { odata.GuardarDB(info); #region grabar en tabla com_solicitud_compra_det_aprobacion // consultar el detalle solicitud com_solicitud_compra_det_Bus bus_DetSol = new com_solicitud_compra_det_Bus(); List <com_solicitud_compra_det_Info> lisDetSol = new List <com_solicitud_compra_det_Info>(); lisDetSol = bus_DetSol.Get_list_DetalleLstSolicitudCompra(info.IdEmpresa, info.IdSucursal, info.IdSolicitudCompra); if (lisDetSol.Count() == 0) { res = false; } List <com_solicitud_compra_det_aprobacion_Info> listDetApr = new List <com_solicitud_compra_det_aprobacion_Info>(); List <com_solicitud_compra_det_pre_aprobacion_Info> listDetPreApr = new List <com_solicitud_compra_det_pre_aprobacion_Info>(); foreach (var item in lisDetSol) { com_solicitud_compra_det_aprobacion_Info infoDetApr = new com_solicitud_compra_det_aprobacion_Info(); infoDetApr.Checked = true; infoDetApr.IdEmpresa = item.IdEmpresa; infoDetApr.IdSucursal_SC = item.IdSucursal; infoDetApr.IdSolicitudCompra = item.IdSolicitudCompra; infoDetApr.Secuencia_SC = item.Secuencia; infoDetApr.IdProducto_SC = item.IdProducto; infoDetApr.NomProducto_SC = item.NomProducto; infoDetApr.Cantidad_aprobada = item.do_Cantidad; com_parametro_Bus bus_param = new com_parametro_Bus(); com_parametro_Info info_param = new com_parametro_Info(); info_param = bus_param.Get_Info_parametro(item.IdEmpresa); infoDetApr.IdEstadoAprobacion = info_param.IdEstadoAprobacion_SolCompra; infoDetApr.IdProveedor_SC = null; infoDetApr.IdUsuarioAprueba = param.IdUsuario; infoDetApr.FechaHoraAprobacion = param.Fecha_Transac; infoDetApr.do_observacion = ""; listDetApr.Add(infoDetApr); //preaprobacion com_solicitud_compra_det_pre_aprobacion_Info infoDetPreApr = new com_solicitud_compra_det_pre_aprobacion_Info(); infoDetPreApr.IdEmpresa = item.IdEmpresa; infoDetPreApr.IdSucursal_SC = item.IdSucursal; infoDetPreApr.IdSolicitudCompra = item.IdSolicitudCompra; infoDetPreApr.Secuencia_SC = item.Secuencia; infoDetPreApr.IdEstadoAprobacion = info_param.IdEstadoAprobacion_SolCompra; infoDetPreApr.IdUsuarioAprueba = param.IdUsuario; infoDetPreApr.FechaHoraAprobacion = DateTime.Now; infoDetPreApr.observacion = "**Pendiente**"; listDetPreApr.Add(infoDetPreApr); } com_solicitud_compra_det_aprobacion_Bus Bus_DetAproba = new com_solicitud_compra_det_aprobacion_Bus(); string validaMotivo = ""; if (Bus_DetAproba.Validar_objeto_AprobSolComp(listDetApr, validaMotivo, ref msg)) { com_solicitud_compra_det_aprobacion_Data odataDetApr = new com_solicitud_compra_det_aprobacion_Data(); odataDetApr.GuardarDB(listDetApr); com_solicitud_compra_det_pre_aprobacion_Data odataDetPreApr = new com_solicitud_compra_det_pre_aprobacion_Data(); odataDetPreApr.GuardarDB(listDetPreApr); } #endregion #region grabar en tabla in_producto_x_tb_bodega // 1. obtener el detalle solicitud compra com_solicitud_compra_det_Bus bus_DetSoli = new com_solicitud_compra_det_Bus(); List <com_solicitud_compra_det_Info> listDetSoli = new List <com_solicitud_compra_det_Info>(); listDetSoli = bus_DetSoli.Get_list_DetalleLstSolicitudCompra(info.IdEmpresa, info.IdSucursal, info.IdSolicitudCompra); // 2. recorro el detalle solicitud foreach (var item in lisDetSol) { in_producto_x_tb_bodega_Data DataInserte = new in_producto_x_tb_bodega_Data(); // 3. Obtengo bodega Sucursal int IdBodega = 0; tb_Bodega_Bus bus_Bodega = new tb_Bodega_Bus(); List <tb_Bodega_Info> listBod = new List <tb_Bodega_Info>(); listBod = bus_Bodega.Get_List_Bodega(item.IdEmpresa, item.IdSucursal); if (listBod.Count() == 0) { // crear bodega Sucursal tb_Bodega_Info infoBodega = new tb_Bodega_Info(); infoBodega.IdEmpresa = item.IdEmpresa; infoBodega.IdSucursal = item.IdSucursal; infoBodega.bo_Descripcion = "Bodega Principal"; infoBodega.Fecha_Transac = param.Fecha_Transac; int id = 0; string msg1 = ""; bus_Bodega.GrabarDB(infoBodega, ref id, ref msg1); IdBodega = id; } else { tb_Bodega_Info infoBod = listBod.FirstOrDefault(); IdBodega = infoBod.IdBodega; } //// 4. Verifico producto (in_producto_x_tb_bodega) //if (!DataInserte.VerificarExisteProductoXSucursalXBodega(item.IdEmpresa, item.IdSucursal, IdBodega, Convert.ToDecimal(item.IdProducto))) //{ // // 5. Obtengo producto (in_Producto) // in_Producto_data odataP = new in_Producto_data(); // in_Producto_Info infoPro = new in_Producto_Info(); // infoPro = odataP.BuscarProducto(Convert.ToDecimal(item.IdProducto), item.IdEmpresa); // in_producto_x_tb_bodega_Info infoProxBod = new in_producto_x_tb_bodega_Info(); // infoProxBod.IdEmpresa = item.IdEmpresa; // infoProxBod.IdSucursal = item.IdSucursal; // infoProxBod.IdBodega = IdBodega; // infoProxBod.IdProducto = Convert.ToDecimal(item.IdProducto); // infoProxBod.pr_precio_publico = infoPro.pr_precio_publico; // infoProxBod.pr_precio_mayor = infoPro.pr_precio_mayor; // infoProxBod.pr_precio_puerta = 0; // infoProxBod.pr_precio_minimo = infoPro.pr_precio_minimo; // infoProxBod.pr_Por_descuento = infoPro.Porc_Descuento; // infoProxBod.pr_stock = infoPro.pr_stock; // infoProxBod.pr_stock_maximo = infoPro.pr_stock_maximo; // infoProxBod.pr_stock_minimo = infoPro.pr_stock_minimo; // infoProxBod.pr_costo_fob = infoPro.pr_costo_fob; // infoProxBod.pr_costo_CIF = infoPro.pr_costo_CIF; // infoProxBod.pr_costo_promedio = infoPro.pr_costo_promedio; // // 5. Inserto (in_producto_x_tb_bodega) // string mensajea = ""; // DataInserte.GrabaDBUnItem(infoProxBod, info.IdEmpresa, ref mensajea); //} //else //{ //} } #endregion } else { res = false; } 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("", "GuardarDB", ex.Message), ex) { EntityType = typeof(com_solicitud_compra_Bus) }; } }