示例#1
0
        public List <EdetalleTicket> detalleTicket_GetByIdTicket(Eticket enc, ref ETransactionResult _transResult)
        {
            var list = new List <EdetalleTicket>();

            _transResult = new ETransactionResult();
            SqlTransaction transaction = null;

            try
            {
                using (SqlConnection sqlCon = new SqlConnection(conn))
                {
                    sqlCon.Open();
                    using (SqlCommand sqlCmd = new SqlCommand())
                    {
                        transaction        = sqlCon.BeginTransaction("SelectAllTranstaction");
                        sqlCmd.Transaction = transaction;
                        sqlCmd.Connection  = sqlCon;
                        sqlCmd.CommandType = CommandType.StoredProcedure;
                        sqlCmd.CommandText = "D_PR_detalleTicket_byIdTicket";
                        sqlCmd.Parameters.AddWithValue("@idTicket", enc.idTicket);


                        using (var reader = sqlCmd.ExecuteReader())
                            while (reader.Read())
                            {
                                var item = new EdetalleTicket();
                                item.idDetalle  = (int)reader["idDetalle"];
                                item.idTicket   = (int)reader["idTicket"];
                                item.fecha      = (DateTime)reader["fecha"];
                                item.idProducto = (int)reader["idProducto"];
                                item.cantidad   = (decimal)reader["cantidad"];
                                item.precio     = (decimal)reader["precio"];
                                item.total      = (decimal)reader["total"];
                                list.Add(item);
                            }
                        transaction.Commit();
                        _transResult.message = "OK";
                        _transResult.result  = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                _transResult.message = ex.Message;
                _transResult.result  = 1;
                try
                {
                    transaction.Rollback();
                }
                catch (Exception rollBackEx)
                {
                    _transResult.rollbackMessage = rollBackEx.Message;
                    _transResult.result          = 1;
                }
            }
            return(list);
        }
示例#2
0
        public void detalleTicket_Delete(EdetalleTicket item, ref ETransactionResult _transResult)
        {
            _transResult = new ETransactionResult();
            SqlTransaction transaction = null;

            try
            {
                using (SqlConnection sqlCon = new SqlConnection(conn))
                {
                    sqlCon.Open();
                    using (SqlCommand sqlCmd = new SqlCommand())
                    {
                        transaction        = sqlCon.BeginTransaction("DeleteTransaction");
                        sqlCmd.Transaction = transaction;
                        sqlCmd.Connection  = sqlCon;
                        sqlCmd.CommandType = CommandType.StoredProcedure;
                        sqlCmd.CommandText = "D_PR_detalleTicket_Delete";
                        sqlCmd.Parameters.AddWithValue("@idDetalle", item.idDetalle);
                        sqlCmd.ExecuteNonQuery();
                        transaction.Commit();
                        _transResult.message = "OK";
                        _transResult.result  = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                _transResult.message = ex.Message;
                _transResult.result  = 1;
                try
                {
                    transaction.Rollback();
                }
                catch (Exception rollBackEx)
                {
                    _transResult.rollbackMessage = rollBackEx.Message;
                    _transResult.result          = 1;
                }
            }
        }
示例#3
0
        public bool SetVenta(List <ETicketVenta> venta, string usr, ref ETransactionResult result)
        {
            bool res = true;

            EMovimiento mov   = new EMovimiento();
            Daproductos _prod = new Daproductos();
            List <EMovimientoDetalle> movdet = new List <EMovimientoDetalle>();
            int idDetalle = 0;

            mov.fecha            = DateTime.Now;
            mov.idMovimiento     = (int)getIdMovimiento();
            mov.idTipoMovimiento = "VTA";
            mov.observacion      = "";
            mov.usuario          = usr;

            idDetalle = (int)getIdMovimientoDetalle();
            foreach (ETicketVenta det in venta)
            {
                EMovimientoDetalle detalle = new EMovimientoDetalle();

                detalle.idDetalle      = idDetalle;
                detalle.idMovimiento   = mov.idMovimiento;
                detalle.tipoAfectacion = "S";
                detalle.idProducto     = det.Producto;
                detalle.cantidad       = det.Cantidad;

                idDetalle += 1;
                movdet.Add(detalle);
            }
            var prods = _prod.productos_GetAll(ref result).Cast <Eproductos>().ToList();

            var invInsuficiente = movdet.Join(prods, _mov => _mov.idProducto, _prods => _prods.idProducto,
                                              (_mov, _prods) => new { Cantidad = _prods.cantidad - _mov.cantidad }).Where(
                x => x.Cantidad < 0).ToList().Count;

            if (invInsuficiente > 0)
            {
                result.result  = -1;
                result.message = "No se puede vender mas producto que el existente.";
                return(false);
            }

            Eticket ticket = new Eticket();
            List <EdetalleTicket> detTic = new List <EdetalleTicket>();

            ticket.idTicket    = (int)getIdTicket();
            ticket.usuario     = usr;
            ticket.fecha       = DateTime.Now;
            ticket.total       = venta.Sum(p => p.Total);
            ticket.observacion = "";
            ticket.cancelado   = false;

            idDetalle = (int)getIdTicketDet();
            foreach (ETicketVenta det in venta)
            {
                EdetalleTicket detalle = new EdetalleTicket();

                detalle.idDetalle  = idDetalle;
                detalle.idTicket   = ticket.idTicket;
                detalle.fecha      = DateTime.Now;
                detalle.idProducto = det.Producto;
                detalle.cantidad   = det.Cantidad;
                detalle.precio     = det.Precio;
                detalle.total      = det.Total;

                idDetalle += 1;

                detTic.Add(detalle);
            }

            var _productos = _prod.productos_GetAll(ref result);

            _productos = _productos.Join(movdet, x => x.idProducto, y => y.idProducto,
                                         (x, y) => x).ToList();

            if (saveTicket(ticket, ref result))
            {
                if (saveDetalleTicket(detTic, ref result))
                {
                    if (saveMovimiento(mov, ref result))
                    {
                        if (!saveDetalleMov(movdet, ref result))
                        {
                            rollbackVenta(_productos, ticket.idTicket, mov.idMovimiento);
                        }
                        else
                        {
                            res = true;
                        }
                    }
                    else
                    {
                        rollbackVenta(_productos, ticket.idTicket, mov.idMovimiento);
                    }
                }
                else
                {
                    rollbackVenta(_productos, ticket.idTicket, mov.idMovimiento);
                }
            }
            else
            {
                rollbackVenta(_productos, ticket.idTicket, mov.idMovimiento);
            }

            return(res);
        }
示例#4
0
        public EdetalleTicket detalleTicket_Update(EdetalleTicket item, ref ETransactionResult _transResult)
        {
            EdetalleTicket itemUpdated = null;

            _transResult = new ETransactionResult();
            SqlTransaction transaction = null;

            try
            {
                using (SqlConnection sqlCon = new SqlConnection(conn))
                {
                    sqlCon.Open();
                    using (SqlCommand sqlCmd = new SqlCommand())
                    {
                        transaction        = sqlCon.BeginTransaction("UpdateTransaction");
                        sqlCmd.Transaction = transaction;
                        sqlCmd.Connection  = sqlCon;
                        sqlCmd.CommandType = CommandType.StoredProcedure;
                        sqlCmd.CommandText = "D_PR_detalleTicket_Update";
                        sqlCmd.Parameters.AddWithValue("@idDetalle", item.idDetalle);
                        sqlCmd.Parameters.AddWithValue("@idTicket", item.idTicket);
                        sqlCmd.Parameters.AddWithValue("@fecha", item.fecha);
                        sqlCmd.Parameters.AddWithValue("@idProducto", item.idProducto);
                        sqlCmd.Parameters.AddWithValue("@cantidad", item.cantidad);
                        sqlCmd.Parameters.AddWithValue("@precio", item.precio);
                        sqlCmd.Parameters.AddWithValue("@total", item.total);
                        using (var reader = sqlCmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                itemUpdated            = new EdetalleTicket();
                                itemUpdated.idDetalle  = (int)reader["idDetalle"];
                                itemUpdated.idTicket   = (int)reader["idTicket"];
                                itemUpdated.fecha      = (DateTime)reader["fecha"];
                                itemUpdated.idProducto = (int)reader["idProducto"];
                                itemUpdated.cantidad   = (decimal)reader["cantidad"];
                                itemUpdated.precio     = (decimal)reader["precio"];
                                itemUpdated.total      = (decimal)reader["total"];
                            }
                        }
                        transaction.Commit();
                        _transResult.message = "OK";
                        _transResult.result  = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                _transResult.message = ex.Message;
                _transResult.result  = 1;
                try
                {
                    transaction.Rollback();
                }
                catch (Exception rollBackEx)
                {
                    _transResult.rollbackMessage = rollBackEx.Message;
                    _transResult.result          = 1;
                }
            }
            return(itemUpdated);
        }