public List <com_solicitud_compra_det_Info> Get_list_DetalleLstSolicitudCompra(int idempresa, int idsucursal, decimal idsolicitud) { List <com_solicitud_compra_det_Info> Lst = new List <com_solicitud_compra_det_Info>(); EntitiesCompras oEnti = new EntitiesCompras(); try { var Query = from q in oEnti.vwcom_solicitud_compra_det where q.IdEmpresa == idempresa && q.IdSucursal == idsucursal && q.IdSolicitudCompra == idsolicitud select q; foreach (var item in Query) { com_solicitud_compra_det_Info Obj = new com_solicitud_compra_det_Info(); Obj.IdEmpresa = item.IdEmpresa; Obj.IdSucursal = item.IdSucursal; Obj.IdSolicitudCompra = item.IdSolicitudCompra; Obj.Secuencia = item.Secuencia; Obj.IdProducto = Convert.ToDecimal(item.IdProducto); Obj.do_Cantidad = item.do_Cantidad; Obj.NomProducto = item.NomProducto; Obj.pr_descripcion = item.NomProducto; Obj.IdCentroCosto = item.IdCentroCosto; Obj.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo; Obj.IdPunto_cargo_grupo = item.IdPunto_cargo_grupo; Obj.IdPunto_cargo = item.IdPunto_cargo; Obj.IdUnidadMedida = item.IdUnidadMedida; Obj.nom_punto_cargo = item.nom_punto_cargo; Obj.NomCentroCosto = item.Nom_Centro_costo; Obj.Nomsub_centro_costo = item.Nom_SubCentroCosto; Obj.cod_producto = item.cod_producto; Obj.nom_producto_princ = item.nom_producto_princ; Obj.pr_stock = Convert.ToDecimal(item.pr_stock); Obj.do_observacion = item.do_observacion; Lst.Add(Obj); } 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); oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje); mensaje = ex.ToString(); throw new Exception(ex.ToString()); } }
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) }; } }
private void gridViewSolicitudCompra_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { try { com_solicitud_compra_det_Info row = new com_solicitud_compra_det_Info(); row = (com_solicitud_compra_det_Info)gridViewSolicitudCompra.GetFocusedRow(); int cont = 0; if (row != null) { if (!String.IsNullOrEmpty(Convert.ToString(row.IdPunto_cargo)) && !String.IsNullOrEmpty(Convert.ToString(row.IdCentroCosto))) { if (row.IdProducto == null) { cont = ListDetSolCom.Where(q => q.NomProducto.Trim() == row.NomProducto.Trim() && q.IdPunto_cargo == row.IdPunto_cargo && q.IdCentroCosto == row.IdCentroCosto).Count(); } else { cont = ListDetSolCom.Where(q => q.IdProducto == row.IdProducto && q.IdPunto_cargo == row.IdPunto_cargo && q.IdCentroCosto == row.IdCentroCosto).Count(); } } } if (cont > 1) { MessageBox.Show("El registro : " + gridViewSolicitudCompra.GetFocusedRowCellValue(colpr_descripcion) + " ya se encuentra en el Detalle. Se procederá a Eliminar", param.Nombre_sistema); gridViewSolicitudCompra.DeleteSelectedRows(); } if (e.Column.Name == "colIdProducto") { Item = ListProducto.First(v => v.IdProducto == Convert.ToDecimal(e.Value)); gridViewSolicitudCompra.SetFocusedRowCellValue(coldo_Cantidad, 0); gridViewSolicitudCompra.SetFocusedRowCellValue(colpr_descripcion, Item.pr_descripcion); gridViewSolicitudCompra.SetFocusedRowCellValue(colIdUnidadMedida, Item.IdUnidadMedida); gridViewSolicitudCompra.SetFocusedRowCellValue(colStock, Item.pr_stock); } else { if (e.Column.Name == "coldo_Cantidad") { if (Convert.ToDouble(gridViewSolicitudCompra.GetFocusedRowCellValue(coldo_Cantidad)) < 0) { gridViewSolicitudCompra.SetFocusedRowCellValue(coldo_Cantidad, Convert.ToDouble(gridViewSolicitudCompra.GetFocusedRowCellValue(coldo_Cantidad)) * -1); } } else { if (e.Column.Name == "colpr_descripcion") { } } } ct_centro_costo_sub_centro_costo_Bus busSubCen = new ct_centro_costo_sub_centro_costo_Bus(); if (e.Column == colIdCentroCosto) { string IdCentroCosto = Convert.ToString(e.Value); if (IdCentroCosto == "-999") // esta creando un registro nuevo { frmCon_CentroCostos_Man frmCentroCosto = new frmCon_CentroCostos_Man(); frmCentroCosto.setAccion(Cl_Enumeradores.eTipo_action.grabar); frmCentroCosto.event_frmCon_CentroCostos_Man_FormClosing += frmCentroCosto_event_frmCon_CentroCostos_Man_FormClosing; frmCentroCosto.ShowDialog(); gridViewSolicitudCompra.SetFocusedRowCellValue(colIdCentroCosto, ""); } } if (e.Column == col_IdPuntoCargo_FJ) { switch (param.IdCliente_Ven_x_Default) { case Cl_Enumeradores.eCliente_Vzen.FJ: if (row.IdPunto_cargo != 0 && row.IdPunto_cargo != null) { ct_punto_cargo_Info info_punto_cargo = new ct_punto_cargo_Info(); ct_punto_cargo_Bus bus_punto_cargo = new ct_punto_cargo_Bus(); info_punto_cargo = bus_punto_cargo.Get_info_punto_Cargo_con_subcentro(param.IdEmpresa, Convert.ToInt32(row.IdPunto_cargo)); row.IdPunto_cargo_grupo = info_punto_cargo.IdPunto_cargo_grupo; row.IdCentroCosto = info_punto_cargo.IdCentroCosto_Scc; row.IdCentroCosto_sub_centro_costo = info_punto_cargo.IdCentroCosto_sub_centro_costo_Scc; } else { row.IdPunto_cargo_grupo = null; row.IdCentroCosto = null; row.IdCentroCosto_sub_centro_costo = null; } break; default: break; } } } catch (Exception ex) { Log_Error_bus.Log_Error(ex.ToString()); MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error); } }