Exemple #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);
        }
Exemple #2
0
        public List <Eticket> ticket_GetAll(ref ETransactionResult _transResult)
        {
            var list = new List <Eticket>();

            _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_ticket_SelectAll";
                        using (var reader = sqlCmd.ExecuteReader())
                            while (reader.Read())
                            {
                                var item = new Eticket();
                                item.idTicket    = (int)reader["idTicket"];
                                item.fecha       = (DateTime)reader["fecha"];
                                item.usuario     = (string)reader["usuario"];
                                item.total       = (decimal)reader["total"];
                                item.cancelado   = (bool)reader["cancelado"];
                                item.observacion = (reader["observacion"] == DBNull.Value) ? "" : (string)reader["observacion"];

                                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);
        }
Exemple #3
0
        public Eticket ticket_Get(Eticket item, ref ETransactionResult _transResult)
        {
            Eticket itemFinded = null;

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

            try
            {
                using (SqlConnection sqlCon = new SqlConnection(conn))
                {
                    sqlCon.Open();
                    using (SqlCommand sqlCmd = new SqlCommand())
                    {
                        transaction        = sqlCon.BeginTransaction("SelectTransaction");
                        sqlCmd.Transaction = transaction;
                        sqlCmd.Connection  = sqlCon;
                        sqlCmd.CommandType = CommandType.StoredProcedure;
                        sqlCmd.Parameters.AddWithValue("@idTicket", item.idTicket);
                        sqlCmd.CommandText = "D_PR_ticket_Select";
                        using (var reader = sqlCmd.ExecuteReader())
                            while (reader.Read())
                            {
                                itemFinded             = new Eticket();
                                itemFinded.idTicket    = (int)reader["idTicket"];
                                itemFinded.fecha       = (DateTime)reader["fecha"];
                                itemFinded.usuario     = (string)reader["usuario"];
                                itemFinded.total       = (decimal)reader["total"];
                                itemFinded.cancelado   = (bool)reader["cancelado"];
                                itemFinded.observacion = (reader["observacion"] == DBNull.Value) ? "" : (string)reader["observacion"];
                            }
                        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(itemFinded);
        }
Exemple #4
0
        private bool saveTicket(Eticket ticket, ref ETransactionResult result)
        {
            bool res = false;

            Daticket _ticket = new Daticket();

            _ticket.ticket_Insert(ticket, ref result);

            if (result.result == 0)
            {
                res = true;
            }

            return(res);
        }
Exemple #5
0
        public void ticket_Delete(Eticket 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_ticket_Delete";
                        sqlCmd.Parameters.AddWithValue("@idTicket", item.idTicket);
                        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;
                }
            }
        }
Exemple #6
0
        public void CancelaVenta(Eticket ticket, ref ETransactionResult result)
        {
            List <EdetalleTicket> det = new List <EdetalleTicket>();
            DadetalleTicket       db  = new DadetalleTicket();
            Daticket    dbTicket      = new Daticket();
            Daproductos _prod         = new Daproductos();

            det = db.detalleTicket_GetByIdTicket(ticket, ref result);


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

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

            idDetalle = (int)getIdMovimientoDetalle();
            foreach (EdetalleTicket item in det)
            {
                EMovimientoDetalle detalle = new EMovimientoDetalle();

                detalle.idDetalle      = idDetalle;
                detalle.idMovimiento   = mov.idMovimiento;
                detalle.tipoAfectacion = "E";
                detalle.idProducto     = item.idProducto;
                detalle.cantidad       = item.cantidad;

                idDetalle += 1;
                movdet.Add(detalle);
            }


            saveMovimiento(mov, ref result);
            saveDetalleMov(movdet, ref result);
            dbTicket.ticket_Update(ticket, ref result);
        }
Exemple #7
0
        public Eticket getEncTicket(Eticket item, ref ETransactionResult result)
        {
            Daticket db = new Daticket();

            return(db.ticket_Get(item, ref result));
        }
Exemple #8
0
        public void updateTicket(Eticket ticket, ref ETransactionResult result)
        {
            Daticket db = new Daticket();

            db.ticket_Update(ticket, ref result);
        }
Exemple #9
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);
        }