コード例 #1
0
        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());
            }
        }
コード例 #2
0
        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());
            }
        }
コード例 #3
0
        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);
            }
        }