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); }
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; } } }
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); }
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); }