예제 #1
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary></summary>
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (Grid.SelectedRows.Count == 0)
            {
                return;
            }

            var idx = Grid.SelectedRows[0].Index;

            if (table == null || idx >= table.Rows.Count)
            {
                return;
            }

            nowIdGasto = (int)Grid["colId", idx].Value;

            var Row = table.FindByid(nowIdGasto);

            if (Row == null)
            {
                MessageBox.Show("No se encontro un gasto con el ID actual");
                return;
            }

            Row.Delete();
            ClearDatos();
            Sumatorias();
            Datos.SetChanges("GastoDelete");
        }
예제 #2
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se llama cuando se oprime el botón de borrar una venta</summary>
        private void btnDelVenta_Click(object sender, EventArgs e)
        {
            var ret = MessageBox.Show("Si borra la venta, no quedrá constancia en el sistema\r\n¿Estas seguro?", "Aviso", MessageBoxButtons.YesNo);

            if (ret == DialogResult.Yes)
            {
                var Row1 = Datos.BD.Ventas.FindByid(NowVentId);
                if (Row1 == null)
                {
                    MessageBox.Show("No se encontro el item a borrar");
                    return;
                }

                Row1.Delete();

                foreach (DataRow Row2 in tbVentas.Rows)
                {
                    if ((int)Row2[0] == NowVentId)
                    {
                        Row2.Delete();
                        break;
                    }
                }

                SetWorkMode(0);
                RefreshEstadisticas();
                Datos.SetChanges("VentaDelete");
            }
        }
예제 #3
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se llama cuando se oprime el boton para devolver una venta</summary>
        private void btnProdBack_Click(object sender, EventArgs e)
        {
            try
            {
                if (!int.TryParse(txtCant.Text, out NowCant) || NowCant <= 0)
                {
                    throw new Exception("El valor para la cantidad es incorrecto.");
                }

                var row1 = Datos.BD.Ventas.FindByid(NowVentId);
                if (row1 == null)
                {
                    throw new Exception("No se encuentra la venta correspondiente");
                }

                if (NowCant > row1.count)
                {
                    throw new Exception("No se pueden devolver más items que los asignados a la venta");
                }

                var fecha = DateTime.Today;
                if (row1.IscomentarioNull())
                {
                    row1.comentario = "";
                }

                row1.count      -= NowCant;
                row1.comentario += " {" + fecha.ToString("d MMM") + ". Devolvio " + NowCant + '}';

                var Monto = row1.count * row1.precio;

                foreach (DataRow row2 in tbVentas.Rows)
                {
                    if ((int)row2["IdVent"] == NowVentId)
                    {
                        row2["Cant"]  = row1.count;
                        row2["Monto"] = Monto;

                        var sItem = ((string)row2["Item"]).Split('|')[0].TrimEnd();
                        row2["Item"] = sItem;

                        if (chkShowComent.Checked)
                        {
                            row2["Item"] += " | " + row1.comentario;
                        }

                        break;
                    }
                }

                SetWorkMode(0);
                RefreshEstadisticas();
                Datos.SetChanges("VentaDevolver");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #4
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se llama al oprimir el boton para realizar un cobro</summary>
        private void btnCobrar_Click(object sender, EventArgs e)
        {
            try
            {
                GetPagoValues();
                if (NowPagoCant <= 0)
                {
                    throw new Exception("La cantidad de items a pagar es incorrecta");
                }

                if (NowPagoCant > Math.Round(NowCantMax, 2))
                {
                    throw new Exception("Se estan pagando más items de los que estan en venta");
                }

                if (NowPagoCuc < 0 || NowPagoCup < 0)
                {
                    throw new Exception("Al menos uno de los 2 precios es incorrecto");
                }

                var pago = ValToNow(NowPagoCuc, Mnd.Cuc) + ValToNow(NowPagoCup, Mnd.Cup);
                if (Math.Round(pago / NowPrec, 2) != Math.Round(NowPagoCant, 2))
                {
                    throw new Exception("El valor pagado no se corresponde con la cantidad de items");
                }

                var sItem = txtPagoItem.Text;
                if (sItem.Length == 0)
                {
                    throw new Exception("Debe seleccionar un item de la lista");
                }

                sItem = sItem.Split('|')[0];

                var sComent = txtPagoComent.Text;
                var fecha   = DateTime.Today;
                var sPrec   = NowPrec.ToString("0.####") + ' ' + Money.Code(NowMond);

                var rowVent = Datos.BD.Ventas.FindByid(NowVentId);

                var rowPago = Datos.BD.Pagos.AddPagosRow(rowVent, NowPagoCant, NowPagoCuc, NowPagoCup, sComent, fecha);

                tbPagos.Rows.Add(rowPago.id, rowVent.id, sItem, NowVend, NowPagoCant, sPrec, NowPagoCuc, NowPagoCup, sComent, fecha);

                pnlSelVenta.Visible = false;

                SelectRowWithId(rowPago.id);
                RefreshEstadisticas();
                Datos.SetChanges("CobroAdd");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }

            ClearDatos();
        }
예제 #5
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se llama al oprimir el botón de modificar pago</summary>
        private void btnModifyPago_Click(object sender, EventArgs e)
        {
            GetModifyValues();

            if (ModifyCuc < 0 || ModifyCup < 0)
            {
                MessageBox.Show("Los pagos no pueden ser negativos");
                return;
            }

            if (ModifyCuc == 0 && ModifyCup == 0)
            {
                MessageBox.Show("Al menos uno de los dos pagos tiene que tener valor");
                return;
            }

            if (ModifyCant <= 0)
            {
                MessageBox.Show("La cantidad debe ser mayor que cero");
                return;
            }

            var row1 = Datos.tablePagos.FindByid(NowPagoId);

            if (row1 != null)
            {
                row1.cuc        = ModifyCuc;
                row1.cup        = ModifyCup;
                row1.count      = ModifyCant;
                row1.comentario = txtModComent.Text;
            }
            else
            {
                MessageBox.Show("No se actulizaron los datos de base de datos, porque no se encontro un pago con el ID " + NowPagoId);
            }

            var row2 = FindPagoId(NowPagoId);

            if (row2 != null)
            {
                row2["Cuc"]    = ModifyCuc;
                row2["Cup"]    = ModifyCup;
                row2["Cant"]   = ModifyCant;
                row2["Coment"] = txtModComent.Text;
            }
            else
            {
                MessageBox.Show("No se actulizaron los datos en la lista, porque no se encontro un pago con el ID " + NowPagoId);
            }

            SelectRowWithId(NowPagoId);
            RefreshEstadisticas();
            Datos.SetChanges("CobroModify");
        }
예제 #6
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se llama cuando se oprime el boton de modificar el precio del producto</summary>
        private void btnModify_Click(object sender, EventArgs e)
        {
            try
            {
                if (Grid.SelectedRows.Count == 0)
                {
                    throw new Exception("Seleccione un Item para modificar el precio");
                }

                var GridRow = Grid.SelectedRows[0];
                var idx     = GridRow.Index;
                if (idx < 0 || idx >= Grid.RowCount || string.IsNullOrEmpty(txtItem.Text.Trim()))
                {
                    throw new Exception("Seleccione un Item para modificar el precio");
                }

                var prec = decimal.Parse(txtValue.Text);

                var Id      = (int)Grid[0, idx].Value;
                var rowComp = table.FindByid(Id);
                if (rowComp == null)
                {
                    throw new Exception("No se encontro el ID del item seleccionado en la base de datos");
                }

                rowComp.precio = prec;
                rowComp.moneda = (int)nowMond;

                var rowGrid = FindTableGridId(Id);
                if (rowGrid == null)
                {
                    throw new Exception("No se encontro el ID del item seleccionado en la lista");
                }

                var sPrecio = prec.ToString("0.##");
                if (prec != 0)
                {
                    sPrecio += ' ' + Money.Code(nowMond);
                }

                rowGrid["precio"] = sPrecio;

                Grid.Refresh();
                Sumatorias();
                Datos.SetChanges("CompraPrecios");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #7
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary></summary>
        private void btnModify_Click(object sender, EventArgs e)
        {
            try
            {
                GetValores();

                var Row1 = table.FindByid(nowIdPres);
                if (Row1 != null)
                {
                    Row1.source = nowDesc;
                    Row1.cambio = nowCambio;
                    Row1.value  = nowValue;
                    Row1.moneda = (int)nowMoneda;
                }
                else
                {
                    MessageBox.Show("No se encontro en la base de datos el presupuesto a modificar");
                    return;
                }

                DataRow Row2 = FindPresupId(nowIdPres);
                if (Row2 != null)
                {
                    var sValue = nowValue.ToString("0.##");
                    var sCuc   = (nowMoneda == Mnd.Cuc)? sValue : "";
                    var sUsd   = (nowMoneda == Mnd.Usd)? sValue : "";

                    Row2["src"]    = nowDesc;
                    Row2["cuc"]    = sCuc;
                    Row2["cambio"] = nowCambio;
                    Row2["usd"]    = sUsd;
                }
                else
                {
                    MessageBox.Show("No se encontro en la lista el presupuesto a modificar");
                    return;
                }

                Sumatorias();
                Datos.SetChanges("PresupuestoModify");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #8
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary></summary>
        private void btnModify_Click(object sender, EventArgs e)
        {
            try
            {
                lstNames.Visible = false;                       // Esconde el listado de los nombres de los item si esta visible
                GetValores();

                var idx = Grid.SelectedRows[0].Index;

                var cell = Grid["IdItem", idx].Value;
                if (cell == null)
                {
                    return;
                }

                int idCompra = (int)cell;
                var Row      = table.FindByid(idCompra);

                Row.item       = item;
                Row.count      = count;
                Row.value      = value;
                Row.valItem    = valItem;
                Row.valCUC     = valCUC;
                Row.valCucItem = valCucItem;
                Row.comentario = txtComent.Text;

                var row2 = FindPagoId(idCompra);
                if (row2 != null)
                {
                    row2["item"]       = item;
                    row2["count"]      = count;
                    row2["value"]      = value;
                    row2["valItem"]    = valItem;
                    row2["valCUC"]     = valCUC;
                    row2["valCucItem"] = valCucItem;
                }

                Sumatorias();
                Datos.SetChanges("CompraModify");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #9
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se ejecuta cuando se oprime el boton de adiccionar un gasto</summary>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                GetValores();

                var row = table.AddGastosRow(desc, valCuc, value);

                SelectGatoInGrid(row.id);

                Sumatorias();
                Datos.SetChanges("GastoAdd");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #10
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary></summary>
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (Grid.SelectedRows.Count == 0)
            {
                return;
            }

            var idx = Grid.SelectedRows[0].Index;

            if (table == null || idx >= table.Rows.Count)
            {
                return;
            }

            var cell = Grid["IdItem", idx].Value;

            if (cell == null)
            {
                return;
            }

            int idCompra = (int)cell;
            var Row      = table.FindByid(idCompra);

            if (Row != null)
            {
                ClearDatos();
                Row.Delete();
                Sumatorias();
            }
            else
            {
                MessageBox.Show("No se encontro una compra con el ID " + (int)cell);
            }

            var row2 = FindPagoId(idCompra);

            if (row2 != null)
            {
                row2.Delete();
            }

            Datos.SetChanges("CompraDelete");
        }
예제 #11
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se llama al oprimir el botón de borrar un pago</summary>
        private void btnDelPago_Click(object sender, EventArgs e)
        {
            if (txtModItem.Text.Length == 0)
            {
                MessageBox.Show("Seleccione el pago que desea borrar");
                return;
            }

            var ret = MessageBox.Show("Si borra el pago, no quedrá constancia en el sistema\r\n¿Estas seguro?", "Aviso", MessageBoxButtons.YesNo);

            if (ret != DialogResult.Yes)
            {
                return;
            }

            var row1 = Datos.tablePagos.FindByid(NowPagoId);

            if (row1 != null)
            {
                row1.Delete();
            }
            else
            {
                MessageBox.Show("No se borro el pago de la base de datos, porque no se encontro un pago con el ID " + NowPagoId);
            }

            var row2 = FindPagoId(NowPagoId);

            if (row2 != null)
            {
                row2.Delete();
            }
            else
            {
                MessageBox.Show("No se borro el pago de la lista, porque no se encontro un pago con el ID " + NowPagoId);
            }

            txtModItem.Text = txtModCant.Text = txtModCuc.Text = txtModCup.Text = txtModComent.Text = "";
            RefreshEstadisticas();
            Datos.SetChanges("CobroDelete");
        }
예제 #12
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary></summary>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                lstNames.Visible = false;                       // Esconde el listado de los nombres de los item si esta visible
                int id = Datos.GetCompraID();

                GetValores();

//        table.Rows.Add( id, item, count, value, valItem, valCUC, valCucItem  );
                table.AddComprasRow(id, item, count, value, valItem, valCUC, valCucItem, 0, 0, txtComent.Text);
                tbCompras.Rows.Add(id, item, count, value, valItem, valCUC, valCucItem);

                Sumatorias();
                Datos.SetChanges("CompraAdd");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #13
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary></summary>
        private void btnModify_Click(object sender, EventArgs e)
        {
            try
            {
                GetValores();

                var idx = Grid.SelectedRows[0].Index;
                nowIdGasto = (int)Grid["colId", idx].Value;
                var Row = table.FindByid(nowIdGasto);

                Row.descric = desc;
                Row.value   = value;
                Row.cuc     = valCuc;

                Sumatorias();
                Datos.SetChanges("GastoModiy");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #14
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary></summary>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                GetValores();

                var row = table.AddPresupuestoRow(nowDesc, nowValue, (int)nowMoneda, nowCambio);

                var sValue = nowValue.ToString("0.##");
                var sCuc   = (nowMoneda == Mnd.Cuc)? sValue : "";
                var sUsd   = (nowMoneda == Mnd.Usd)? sValue : "";

                tbPresup.Rows.Add(row.id, row.source, sCuc, row.cambio, sUsd);

                Sumatorias();
                Datos.SetChanges("PresupuestoAdd");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #15
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary></summary>
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (Grid.SelectedRows.Count == 0)
            {
                MessageBox.Show("Seleccione un presupuesto para borrar");
                return;
            }

            var row1 = table.FindByid(nowIdPres);

            if (row1 != null)
            {
                row1.Delete();
            }
            else
            {
                MessageBox.Show("No se pudo borrar el pesupuesto de la base de datos");
                return;
            }

            var row2 = FindPresupId(nowIdPres);

            if (row2 != null)
            {
                row2.Delete();
            }
            else
            {
                MessageBox.Show("No se pudo borrar el pesupuesto de la lista");
                return;
            }


            ClearDatos();
            Sumatorias();
            Datos.SetChanges("PresupuestoDelete");
        }
예제 #16
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se llama al oprimir el botón para adicionar una venta</summary>
        private void btnAddVenta_Click(object sender, EventArgs e)
        {
            NowVentId = -1;
            try
            {
                GetValores();
                if (NowVend == Datos.Vendedores[0])
                {
                    NowPrec = 0;
                }

                nowMonto = NowCant * NowPrec;
                var sMoneda = Money.Code(NowMond);
                var fecha   = DateTime.Today;
                var Coment  = txtProdComent.Text;

                var row = Datos.BD.Ventas.AddVentasRow(NowItemId, NowVend, NowCant, NowPrec, (int)NowMond, fecha, Coment);

                NowVentId = row.id;
                if (chkShowComent.Checked)
                {
                    NowItem += " | " + Coment;
                }

                var row2 = tbVentas.Rows.Add(NowVentId, NowItem, NowVend, NowCant, NowPrec, nowMonto, sMoneda, fecha);

                SelectVentaInGrid(NowVentId);
                RefreshEstadisticas();
                SetWorkMode(0);
                Datos.SetChanges("VentaAdd");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }
예제 #17
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Se llama para hacer un pago de una venta directamente</summary>
        private void btnPagar_Click(object sender, EventArgs e)
        {
            btnAddVenta_Click(null, null);
            if (NowVentId < 0)
            {
                return;
            }

            var fecha   = DateTime.Today;
            var rowVent = Datos.BD.Ventas.FindByid(NowVentId);

            if (rowVent == null)
            {
                MessageBox.Show("ERROR: No existe la venta con el ID " + NowVentId);
                return;
            }

            rowVent.comentario += " (Pago directo)";
            decimal PagoCuc = 0, PagoCup = 0;

            if (NowMond == Mnd.Cuc)
            {
                PagoCuc = nowMonto;
            }
            else if (NowMond == Mnd.Cup)
            {
                PagoCup = nowMonto;
            }
            else
            {
                PagoCuc = Money.Convert(nowMonto, NowMond, Mnd.Cuc);
            }

            Datos.BD.Pagos.AddPagosRow(rowVent, NowCant, PagoCuc, PagoCup, "Pago directo", fecha);
            Datos.SetChanges("VentaDirect");
        }
예제 #18
0
        //--------------------------------------------------------------------------------------------------------------------------------------
        /// <summary>Modifica los datos de una venta</summary>
        private void btnModify_Click(object sender, EventArgs e)
        {
            try
            {
                if (!int.TryParse(txtCant.Text, out NowCant) || NowCant < 0)
                {
                    throw new Exception("El valor para la cantidad es incorrecto.");
                }

                NowMond = (Mnd)cbMoneda.SelectedIndex;
                if ((int)NowMond == -1)
                {
                    throw new Exception("Debe seleccionar la moneda a utilizar");
                }

                if (!decimal.TryParse(txtValue.Text, out NowPrec))
                {
                    throw new Exception("El valor para el precio es incorrecto");
                }

                var Parts = txtItem.Text.Split('|');
                NowVentId = int.Parse(Parts[0]);

                var row = Datos.BD.Ventas.FindByid(NowVentId);
                if (row == null)
                {
                    throw new Exception("No se encuentra la venta correspondiente");
                }

                NowMaxCant = ItemRemanet(row.idProd, NowVentId);
                if (NowCant > NowMaxCant)
                {
                    throw new Exception("La cantidad máxima de items permitidos es " + NowMaxCant);
                }

                var fecha = DateTime.Today;
                if (row.vendedor == Datos.Vendedores[0])
                {
                    NowPrec = 0;
                }

                row.count      = NowCant;
                row.precio     = NowPrec;
                row.moneda     = (int)NowMond;
                row.fecha      = fecha;
                row.comentario = txtComent.Text;

                var Monto   = NowCant * NowPrec;
                var sMoneda = Money.Code(NowMond);

                foreach (DataRow row2 in tbVentas.Rows)
                {
                    if ((int)row2["IdVent"] == NowVentId)
                    {
                        row2["Cant"]   = NowCant;
                        row2["Precio"] = NowPrec;
                        row2["Monto"]  = Monto;
                        row2["Moned"]  = sMoneda;
                        row2["Fecha"]  = fecha;

                        var sItem = ((string)row2["Item"]).Split('|')[0].TrimEnd();
                        row2["Item"] = sItem;

                        if (chkShowComent.Checked)
                        {
                            row2["Item"] += " | " + row.comentario;
                        }

                        break;
                    }
                }

                SetWorkMode(0);
                RefreshEstadisticas();
                Datos.SetChanges("VentaModify");
            }
            catch (Exception exc)
            {
                MessageBox.Show("ERROR: " + exc.Message);
            }
        }