public Boolean Validar_objeto(com_ordencompra_local_Info Info, ref string msg) { try { if (Info.IdEmpresa == 0 || Info.IdSucursal == 0 || Info.IdProveedor == 0 || Info.IdDepartamento == 0) { msg = "las variables estan en cero... Info.IdEmpresa == 0 || Info.IdSucursal == 0 || Info.IdProveedor == 0 || Info.IdDepartamento == 0 "; return(false); } /* * if (Info.IdMotivo == null || Info.IdMotivo == 0) * { * msg = "Ingrese el motivo de la Compra"; * com_Catalogo_Bus bUS = new com_Catalogo_Bus(); * List<com_Catalogo_Info> listc = new List<com_Catalogo_Info>(bUS.Get_List_Catalogo()); * return false; * * }*/ if (Info.listDetalle.Count == 0) { msg = "la OC no tiene items q grabar"; return(false); } int c = 0; foreach (var item in Info.listDetalle) { if (item.do_Cantidad == 0) { msg = "Ingrese la cantidad al item : " + item.codproducto + " "; return(false); } if (item.do_precioCompra == 0) { msg = "Ingrese el costo al item : " + item.codproducto + " "; return(false); } if (item.IdUnidadMedida == "" || item.IdUnidadMedida == null) { in_producto_Bus BusProducto = new in_producto_Bus(); in_Producto_Info InfoProducto = new in_Producto_Info(); InfoProducto = BusProducto.Get_info_Product(item.IdEmpresa, item.IdProducto); item.IdUnidadMedida = InfoProducto.IdUnidadMedida; } if (item.IdCentroCosto == "") { item.IdCentroCosto = null; } if (item.IdCentroCosto_sub_centro_costo == "") { item.IdCentroCosto_sub_centro_costo = null; } if (item.IdCod_Impuesto == "" || item.IdCod_Impuesto == null) // Arreglando si no viene iva y codigo de iva { tb_sis_impuesto_Bus BusImpuestoIva = new tb_sis_impuesto_Bus(); List <tb_sis_impuesto_Info> ListInfo_Impuesto = new List <tb_sis_impuesto_Info>(); tb_sis_impuesto_Info Info_Impuesto = new tb_sis_impuesto_Info(); ListInfo_Impuesto = BusImpuestoIva.Get_List_impuesto_para_Compras("IVA"); Info_Impuesto = ListInfo_Impuesto.FirstOrDefault(); item.IdCod_Impuesto = Info_Impuesto.IdCod_Impuesto; item.Por_Iva = Info_Impuesto.porcentaje; } //item.do_ManejaIva = (item.do_iva == 0) ? false : true; c = c + 1; item.Secuencia = c; item.IdEmpresa = Info.IdEmpresa; item.IdSucursal = Info.IdSucursal; item.IdOrdenCompra = Info.IdOrdenCompra; } if (Info.IdMotivo == 0 && Info.IdMotivo == null) { //consulta motivo compra com_Motivo_Orden_Compra_Data odataMoti = new com_Motivo_Orden_Compra_Data(); List <com_Motivo_Orden_Compra_Info> listMoti = new List <com_Motivo_Orden_Compra_Info>(); listMoti = odataMoti.Get_List_Motivo_Orden_Compra(Info.IdEmpresa); var itemMoti = listMoti.FirstOrDefault(q => q.IdMotivo == Info.IdMotivo); Info.IdMotivo = itemMoti.IdMotivo; } if (Info.IdEstadoAprobacion_cat == "" || Info.IdEstadoAprobacion_cat == null) { List <com_Catalogo_Info> listEstadoAproba = new List <com_Catalogo_Info>(); listEstadoAproba = CatCom.Get_ListEstadoAprobacion(); com_Catalogo_Info resEstadoApro = new com_Catalogo_Info(); resEstadoApro = listEstadoAproba.FirstOrDefault(); Info.IdEstadoAprobacion_cat = resEstadoApro.IdCatalogocompra; } if (Info.IdEstadoRecepcion_cat == "" || Info.IdEstadoRecepcion_cat == null) { List <com_Catalogo_Info> listEstadoRecep = new List <com_Catalogo_Info>(); com_Catalogo_Info resEstadoRece = new com_Catalogo_Info(); listEstadoRecep = CatCom.Get_ListEstadoRecepcion(); resEstadoRece = listEstadoRecep.First(); Info.IdEstadoRecepcion_cat = resEstadoRece.IdCatalogocompra; } if (Info.IdTerminoPago == "" || Info.IdTerminoPago == null) { List <com_TerminoPago_Info> listTerminoPago = new List <com_TerminoPago_Info>(); listTerminoPago = BusTerPago.Get_List_TerminoPago(); com_TerminoPago_Info TerminoPago = new com_TerminoPago_Info(); TerminoPago = listTerminoPago.FirstOrDefault(); Info.IdTerminoPago = TerminoPago.IdTerminoPago; } if (Info.IdEstado_cierre == null || Info.IdEstado_cierre == "") { com_estado_cierre_Bus busEstCierre = new com_estado_cierre_Bus(); com_parametro_Bus paraBus = new com_parametro_Bus(); string idestadoCierrexDefault = ""; idestadoCierrexDefault = paraBus.Get_List_parametro(Info.IdEmpresa).FirstOrDefault().IdEstado_cierre; Info.IdEstado_cierre = busEstCierre.Get_List_estado_cierre().FirstOrDefault(v => v.IdEstado_cierre == idestadoCierrexDefault).IdEstado_cierre; } 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("", "Validar_objeto", ex.Message), ex) { EntityType = typeof(com_ordencompra_local_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) }; } }