private void ver_stock() { try { fa_proforma_det_Info row = (fa_proforma_det_Info)gridView_detalle.GetFocusedRow(); if (row == null) { return; } in_Producto_Info row_producto = row == null ? null : lst_producto.FirstOrDefault(q => q.IdProducto == row.IdProducto); #region Ver lote if (row_producto.IdProducto_padre != null) { if (cmb_punto_venta.EditValue == null) { return; } fa_PuntoVta_Info row_punto_venta = lst_punto_venta.FirstOrDefault(q => q.IdPuntoVta == Convert.ToInt32(cmb_punto_venta.EditValue)); row_producto.IdSucursal = row_punto_venta.IdSucursal; row_producto.IdBodega = Convert.ToInt32(row_punto_venta.IdBodega); FrmIn_producto_asignacion_lote frm = new FrmIn_producto_asignacion_lote(); frm.set_funcion(Cl_Enumeradores.eFuncion_pantalla_lote.SELECCIONAR); frm.set_info(Convert.ToDecimal(row_producto.IdProducto_padre), row_producto.IdSucursal, row_producto.IdBodega); frm.ShowDialog(); if (frm.Result == System.Windows.Forms.DialogResult.OK) { in_producto_lote info_retorno = frm.get_info_retorno(); if (info_retorno == null) { MessageBox.Show("No ha seleccionado ningún lote", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } int cont = lst_producto.Where(q => q.IdProducto == info_retorno.IdProducto).Count(); if (cont == 0) { MessageBox.Show("El producto seleccionado no esta habilitado para facturacion, comuníquese con sistemas", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } row_producto = lst_producto.FirstOrDefault(q => q.IdProducto == info_retorno.IdProducto); row.IdProducto = info_retorno.IdProducto == null ? row_producto.IdProducto : Convert.ToDecimal(info_retorno.IdProducto); gridView_detalle.RefreshRow(gridView_detalle.FocusedRowHandle); } } #endregion } catch (Exception ex) { string NameMetodo = System.Reflection.MethodBase.GetCurrentMethod().Name; NameMetodo = NameMetodo + " - " + ex.ToString(); MessageBox.Show(NameMetodo + " " + param.Get_Mensaje_sys(enum_Mensajes_sys.Error_comunicarse_con_sistemas) , param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error); Log_Error_bus.Log_Error(NameMetodo + " - " + ex.ToString()); } }
private void txt_codigo_barra_KeyPress(object sender, KeyPressEventArgs e) { try { if (!String.IsNullOrEmpty(txt_codigo_barra.Text) && e.KeyChar == (char)Keys.Enter && cmb_bodega.EditValue != null) { in_Producto_Info row_producto = lst_producto.FirstOrDefault(q => q.pr_codigo_barra == txt_codigo_barra.Text.ToString()); if (row_producto != null) { if (row_producto.IdProducto_padre != null) { tb_Bodega_Info row_bodega = lst_bodega.FirstOrDefault(q => q.IdBodega == Convert.ToInt32(cmb_bodega.EditValue)); if (row_bodega == null) { return; } row_producto.IdSucursal = row_bodega.IdSucursal; row_producto.IdBodega = Convert.ToInt32(row_bodega.IdBodega); FrmIn_producto_asignacion_lote frm = new FrmIn_producto_asignacion_lote(); frm.set_funcion(Cl_Enumeradores.eFuncion_pantalla_lote.SELECCIONAR); frm.set_info(Convert.ToDecimal(row_producto.IdProducto_padre), row_producto.IdSucursal, row_producto.IdBodega); frm.ShowDialog(); if (frm.Result == System.Windows.Forms.DialogResult.OK) { in_producto_lote info_retorno = frm.get_info_retorno(); row_producto = lst_producto.FirstOrDefault(q => q.IdProducto == info_retorno.IdProducto); if (row_producto != null) { int cont = blst_det.Where(q => q.IdProducto == row_producto.IdProducto).Count(); if (cont > 0) { MessageBox.Show("El producto seleccionado ya existe en el detalle de la factura", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } for (int i = 0; i < gridView_detalle.RowCount; i++) { if (Convert.ToDecimal(gridView_detalle.GetRowCellValue(i, col_IdProducto)) == 0) { gridView_detalle.SetRowCellValue(i, col_IdProducto, row_producto.IdProducto); break; } } } } } } gridControl_detalle.DataSource = null; gridControl_detalle.DataSource = blst_det; txt_codigo_barra.Text = ""; txt_codigo_barra.Focus(); } } catch (Exception ex) { string NameMetodo = System.Reflection.MethodBase.GetCurrentMethod().Name; NameMetodo = NameMetodo + " - " + ex.ToString(); MessageBox.Show(NameMetodo + " " + param.Get_Mensaje_sys(enum_Mensajes_sys.Error_comunicarse_con_sistemas) , param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error); Log_Error_bus.Log_Error(NameMetodo + " - " + ex.ToString()); } }
private void gridView_detalle_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { try { fa_proforma_det_Info row = (fa_proforma_det_Info)gridView_detalle.GetRow(e.RowHandle); if (row == null) { return; } if (e.Column == col_IdProducto) { in_Producto_Info row_producto = lst_producto.FirstOrDefault(q => q.IdProducto == row.IdProducto); if (row_producto == null) { return; } #region Ver lote if (row_producto.IdProducto_padre != null) { row_producto.IdSucursal = Convert.ToInt32(cmb_sucursal.EditValue); row_producto.IdBodega = Convert.ToInt32(cmb_bodega.EditValue); FrmIn_producto_asignacion_lote frm = new FrmIn_producto_asignacion_lote(); frm.set_funcion(Cl_Enumeradores.eFuncion_pantalla_lote.SELECCIONAR); frm.set_info(Convert.ToDecimal(row_producto.IdProducto_padre), row_producto.IdSucursal, row_producto.IdBodega); frm.ShowDialog(); if (frm.Result == System.Windows.Forms.DialogResult.OK) { in_producto_lote info_retorno = frm.get_info_retorno(); if (info_retorno == null) { MessageBox.Show("No ha seleccionado ningún lote", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } agregar_producto_en_combo(info_retorno.IdProducto == null ? 0 : Convert.ToDecimal(info_retorno.IdProducto)); int cont = lst_producto.Where(q => q.IdProducto == info_retorno.IdProducto).Count(); if (cont == 0) { MessageBox.Show("El producto seleccionado no esta habilitado para facturacion, comuníquese con sistemas", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } row_producto = lst_producto.FirstOrDefault(q => q.IdProducto == info_retorno.IdProducto); row.IdProducto = info_retorno.IdProducto == null ? row_producto.IdProducto : Convert.ToDecimal(info_retorno.IdProducto); } } #endregion int nivel_precio = (cmb_cliente.get_ClienteInfo().NivelPrecio == null || cmb_cliente.get_ClienteInfo().NivelPrecio == 0) ? 1 : Convert.ToInt32(cmb_cliente.get_ClienteInfo().NivelPrecio); switch (nivel_precio) { case 1: row.pd_precio = row_producto.precio_1 == null ? 0 : Convert.ToDouble(row_producto.precio_1); break; case 2: row.pd_precio = row_producto.precio_2 == null ? (row.pd_precio = row_producto.precio_1 == null ? 0 : Convert.ToDouble(row_producto.precio_1)) : Convert.ToDouble(row_producto.precio_2); break; case 3: row.pd_precio = row_producto.precio_3 == null ? (row.pd_precio = row_producto.precio_1 == null ? 0 : Convert.ToDouble(row_producto.precio_1)) : Convert.ToDouble(row_producto.precio_3); break; case 4: row.pd_precio = row_producto.precio_4 == null ? (row.pd_precio = row_producto.precio_1 == null ? 0 : Convert.ToDouble(row_producto.precio_1)) : Convert.ToDouble(row_producto.precio_4); break; case 5: row.pd_precio = row_producto.precio_5 == null ? (row.pd_precio = row_producto.precio_1 == null ? 0 : Convert.ToDouble(row_producto.precio_1)) : Convert.ToDouble(row_producto.precio_5); break; } row.IdCod_Impuesto = row_producto.IdCod_Impuesto_Iva; tb_sis_impuesto_Info row_impuesto = lst_impuesto.FirstOrDefault(q => q.IdCod_Impuesto == row.IdCod_Impuesto); if (row_impuesto != null) { row.pd_por_iva = row_impuesto.porcentaje; } } if (e.Column == col_cantidad || e.Column == col_precio || e.Column == col_por_descuento) { row.pd_descuento_uni = Math.Round((row.pd_precio * row.pd_por_descuento_uni) / 100, 2, MidpointRounding.AwayFromZero); row.pd_precio_final = row.pd_precio - row.pd_descuento_uni; row.pd_subtotal = row.pd_cantidad * row.pd_precio_final; row.pd_iva = Math.Round(Convert.ToDouble(row.pd_subtotal * (row.pd_por_iva / 100)), 2, MidpointRounding.AwayFromZero); row.pd_total = row.pd_subtotal + row.pd_iva; } if (e.Column == col_impuesto) { tb_sis_impuesto_Info row_impuesto = lst_impuesto.FirstOrDefault(q => q.IdCod_Impuesto == row.IdCod_Impuesto); if (row_impuesto != null) { row.pd_por_iva = row_impuesto.porcentaje; } row.pd_iva = Math.Round(Convert.ToDouble(row.pd_subtotal * (row.pd_por_iva / 100)), 2, MidpointRounding.AwayFromZero); row.pd_total = row.pd_subtotal + row.pd_iva; } } catch (Exception ex) { Log_Error_bus.Log_Error(ex.ToString()); MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error); } }