public RespuestaTransaccion Put([FromBody] ClienteRequest clienteRequest) { RespuestaTransaccion RG = new RespuestaTransaccion(); try { using (FacturadorWebContext context = new FacturadorWebContext()) { var TD = context.TipoDocumento.SingleOrDefault(x => x.Acronimo == clienteRequest.TIPO_DOCUMENTO); var resultado = context.Persona.SingleOrDefault(x => x.NumeroDocumento == clienteRequest.NUMERO_DOCUMENTO && x.IdTipoDocumento == TD.Id); if (resultado != null) { resultado.Nombre = clienteRequest.NOMBRE; resultado.Apellido = clienteRequest.APELLIDO; resultado.Direccion = clienteRequest.DIRECCION; resultado.Email = clienteRequest.EMAIL; resultado.Telefono = clienteRequest.TELEFONO; context.SaveChanges(); return(RG.GenerarRespuesta("Actualizacion exitosa", "0000")); } else { return(RG.GenerarRespuesta("Error. El cliente no existe en nuestra base de datos", "0005")); } } } catch (Exception ex) { return(RG.GenerarRespuesta("Ocurrio un error durante la actualizacion de los datos", "0006", ex)); } }
public List <ProductoInventario> Get() { List <Inventario> resultado = null; List <ProductoInventario> listado_definitivo = new List <ProductoInventario>(); using (FacturadorWebContext bd = new FacturadorWebContext()) { resultado = bd.Inventario.ToList(); } if (resultado != null) { foreach (Inventario producto in resultado) { ProductoInventario PI = new ProductoInventario(); PI.Codigo = producto.Id; PI.Descripcion = producto.Descripcion; PI.Nombre = producto.Nombre; PI.FechaRegistro = producto.FechaRegistro; PI.TotalRecibidos = producto.TotalRecibidos; PI.TotalVendidos = producto.TotalVendidos; PI.TotalDevueltos = producto.TotalDevueltos; PI.TotalDesincorporados = producto.TotalDesincorporados; PI.TotalProceso = producto.TotalProceso; PI.PrecioCompra = producto.PrecioCompra; PI.PrecioVenta = producto.PrecioVenta; PI.PorcentajeIva = producto.PorcentajeIva; PI.PorcentajeDescuento = producto.PorcentajeDescuento; listado_definitivo.Add(PI); } } return(listado_definitivo); }
public IniciarSesionResponse Post([FromBody] IniciarSesionRequest SessionObject) { var RG = new RespuestaTransaccion(); IniciarSesionResponse ObjetoRespuesta = null; RespuestaTransaccion RTN = new RespuestaTransaccion(); using (FacturadorWebContext context = new FacturadorWebContext()) { var query_sesion = from U in context.Usuario join P in context.Persona on U.IdPersona equals P.Id where U.Nickname == SessionObject.NICKNAME && U.Clave == SessionObject.PASSWORD select new IniciarSesionResponse { NOMBRE = P.Nombre, APELLIDO = P.Apellido, ID_USUARIO = U.Id, PERFIL = U.Perfil, ESTADO = U.Estado }; ObjetoRespuesta = query_sesion.FirstOrDefault(); if (ObjetoRespuesta != null) { if (ObjetoRespuesta.ESTADO) { ObjetoRespuesta.RESPUESTA_TRANSACCION = RTN.GenerarRespuesta("Transaccion exitosa", "0000"); } else { ObjetoRespuesta.RESPUESTA_TRANSACCION = RTN.GenerarRespuesta("Error. Usuario inactivo, por favor contacte al administrador del sistema", "0008"); } } else { ObjetoRespuesta = new IniciarSesionResponse(); ObjetoRespuesta.RESPUESTA_TRANSACCION = RTN.GenerarRespuesta("Error. Inicio de sesion fallido, usuario o password incorrectos", "0007"); } return(ObjetoRespuesta); } }
public List <Response_GetAllFacturas> Get() { List <Factura> ListadoFactura = null; List <Response_GetAllFacturas> ListaFacturasResponse = new List <Response_GetAllFacturas>(); using (FacturadorWebContext context = new FacturadorWebContext()) { ListadoFactura = context.Factura.ToList(); if (ListadoFactura != null) { var query = from F in context.Factura join E in context.EstadosFactura on F.IdEstado equals E.Id select new Response_GetAllFacturas { Id = F.Id, Numero = F.Numero, ValorTotal = F.ValorTotal, ValorSubtotal = F.ValorSubtotal, ValorIva = F.ValorIva, ValorDescuento = F.ValorDescuento, FechaApertura = F.FechaApertura, FechaCierre = F.FechaCierre, Estado = E.Descripcion }; ListaFacturasResponse = query.ToList(); } } return(ListaFacturasResponse); }
public Response_GetFacturaWithDetailscs Get(int userId) // buscar una factura en curso { Response_GetFacturaWithDetailscs facturaResponse = new Response_GetFacturaWithDetailscs(); RespuestaTransaccion RT = new RespuestaTransaccion(); GetFacturaDetailResponse consulta = new GetFacturaDetailResponse(); using (FacturadorWebContext bd = new FacturadorWebContext()) { var usuario = bd.Usuario.SingleOrDefault(x => x.Id == userId && x.Estado == true); if (usuario != null) { var factura = bd.Factura.SingleOrDefault(x => x.IdUsuario == userId && x.IdEstado == 1); if (factura != null) { facturaResponse = consulta.ConsultarDetalleFactura(factura); } else { facturaResponse.respuestaTransaccion = RT.GenerarRespuesta("Error. El operador no tiene facturas en proceso", "0025"); } } else { facturaResponse.respuestaTransaccion = RT.GenerarRespuesta("Error. El operador no existe o no tiene permisos para facturar", "0026"); } } return(facturaResponse); }
public RespuestaTransaccion Post([FromBody] Request_Object_Create_Invoice objeto_entrada) { RespuestaTransaccion RG = new RespuestaTransaccion(); Cliente cliente = null; using (FacturadorWebContext bd = new FacturadorWebContext()) { var usuario = bd.Usuario.FirstOrDefault(x => x.Id == objeto_entrada.userId && x.Estado == true); if (usuario != null) { var TD = bd.TipoDocumento.SingleOrDefault(x => x.Acronimo == objeto_entrada.clientDocumentType); if (TD != null) { // BUSCAR EN PERSONAS - CLIENTES var query_clientes = from C in bd.Cliente join P in bd.Persona on C.IdPersona equals P.Id join T in bd.TipoDocumento on P.IdTipoDocumento equals T.Id where T.Acronimo == objeto_entrada.clientDocumentType && P.NumeroDocumento == objeto_entrada.clientDocumentNumber select new Cliente { Id = C.Id }; cliente = query_clientes.FirstOrDefault(); if (cliente != null) { var facturaEnProceso = bd.Factura.FirstOrDefault(x => x.IdUsuario == objeto_entrada.userId && x.IdEstado == 1); if (facturaEnProceso != null) { return(RG.GenerarRespuesta("Error, El operador ya tiene una factura en proceso", "0022")); } else { Factura factura = new Factura(); factura.FechaApertura = DateTime.Now; factura.IdEstado = 1; factura.IdCliente = cliente.Id; factura.IdUsuario = usuario.Id; bd.Factura.Add(factura); bd.SaveChanges(); return(RG.GenerarRespuesta("Factura creada con exito", "0000")); } } else { return(RG.GenerarRespuesta("Error. El cliente(" + objeto_entrada.clientDocumentType + " - " + objeto_entrada.clientDocumentNumber + ") no existe", "0020")); } } else { return(RG.GenerarRespuesta("Error. Tipo de documento (" + objeto_entrada.clientDocumentType + ") no existe", "0019")); } } else { return(RG.GenerarRespuesta("Error. El cajero no esta registrado en base de datos o no esta autorizado para realizar el proceso de facturacion", "0021")); } } }
public List <GetClienteResponse> Get() { List <Cliente> ListadoClientes = null; List <GetClienteResponse> ListaClientesResponse = new List <GetClienteResponse>(); using (FacturadorWebContext context = new FacturadorWebContext()) { ListadoClientes = context.Cliente.ToList(); if (ListadoClientes != null) { foreach (Cliente c in ListadoClientes) { var query = from P in context.Persona join C in context.Cliente on P.Id equals C.IdPersona join TD in context.TipoDocumento on P.IdTipoDocumento equals TD.Id select new GetClienteResponse { NOMBRE = P.Nombre, APELLIDO = P.Apellido, NUMERO_DOCUMENTO = P.NumeroDocumento, TELEFONO = P.Telefono, EMAIL = P.Email, DIRECCION = P.Direccion, TIPO_DOCUMENTO = TD.Acronimo }; ListaClientesResponse = query.ToList(); } } } return(ListaClientesResponse); }
public async Task <RespuestaTransaccion> PutAsync([FromBody] Request_Objetc_Add_Producto_To_Factura entrada) // restar producto de la factura { RespuestaTransaccion RG = new RespuestaTransaccion(); GetFacturaDetailResponse consulta = new GetFacturaDetailResponse(); Response_GetFacturaWithDetailscs facturaResponse = new Response_GetFacturaWithDetailscs(); using (FacturadorWebContext bd = new FacturadorWebContext()) { var facturaEnProceso = bd.Factura.FirstOrDefault(x => x.IdUsuario == entrada.idUsuario && x.IdEstado == 1); if (facturaEnProceso != null) { var productoInventario = bd.Inventario.FirstOrDefault(x => x.Id == entrada.codBarras); if (productoInventario != null) { productoInventario.TotalProceso--; bd.SaveChanges(); var productoProductoEnProceso = bd.Producto.FirstOrDefault(x => x.IdInventario == entrada.codBarras && x.IdFactura == facturaEnProceso.Id); if (productoProductoEnProceso != null) { if (productoProductoEnProceso.Cantidad > 0) { productoProductoEnProceso.Cantidad--; productoProductoEnProceso.ValorTotal = productoProductoEnProceso.ValorUnitario * productoProductoEnProceso.Cantidad; productoProductoEnProceso.ValorTotalDescuento = (productoProductoEnProceso.PorcentajeDescuento * productoProductoEnProceso.ValorTotal) / 100; productoProductoEnProceso.ValorTotalIva = (productoProductoEnProceso.PorcentajeIva * productoProductoEnProceso.ValorTotal) / 100; bd.SaveChanges(); } else { return(RG.GenerarRespuesta("Error, ya se desconto el total de unidades disponibles del producto para la factura", "0026")); } } else { return(RG.GenerarRespuesta("Error, El producto no esta asociado a la factura", "0025")); } facturaResponse = consulta.ConsultarDetalleFactura(facturaEnProceso); await _hubContext.Clients.All.SendAsync("SignalrFacturaReceived", facturaResponse); return(RG.GenerarRespuesta("Producto descontado de la factura. Transaccion exitosa", "0000")); } else { return(RG.GenerarRespuesta("Error, el codigo de producto no existe en BD", "0027")); } } else { return(RG.GenerarRespuesta("Error, El operador no tiene una factura en proceso", "0028")); } } }
public RespuestaTransaccion Get(string ACRONIMO, string NUMERO_DOCUMENTO) { Cliente cliente = null; RespuestaTransaccion RG = new RespuestaTransaccion(); using (FacturadorWebContext context = new FacturadorWebContext()) { var TD = context.TipoDocumento.SingleOrDefault(x => x.Acronimo == ACRONIMO); if (TD != null) { // BUSCAR EN PERSONAS - CLIENTES var query_clientes = from C in context.Cliente join P in context.Persona on C.IdPersona equals P.Id join T in context.TipoDocumento on P.IdTipoDocumento equals T.Id where T.Acronimo == ACRONIMO && P.NumeroDocumento == NUMERO_DOCUMENTO select new Cliente { Id = C.Id }; cliente = query_clientes.FirstOrDefault(); if (cliente != null) { return(RG.GenerarRespuesta("Cliente existe en nuestra base de datos", "0000")); } else { var query_personas = context.Persona.SingleOrDefault(x => x.NumeroDocumento == NUMERO_DOCUMENTO && x.IdTipoDocumento == TD.Id); if (query_personas != null) { Cliente nuevo_cliente = new Cliente(); nuevo_cliente.Puntos = 0; nuevo_cliente.IdPersona = query_personas.Id; context.Cliente.Add(nuevo_cliente); context.SaveChanges(); return(RG.GenerarRespuesta("El usuario " + query_personas.Nombre + " " + query_personas.Apellido + " ya existe en nuestra base de datos y se ha registrado como cliente para modificar su informacion de registro buscar en clientes y haga clic en la opcion editar", "0000")); } else { return(RG.GenerarRespuesta("Error. El cliente (" + ACRONIMO + "-" + NUMERO_DOCUMENTO + ") no existe", "0002")); } } } else { return(RG.GenerarRespuesta("Error. Tipo de documento (" + ACRONIMO + ") no existe", "0001")); } } }
public RespuestaTransaccion Put([FromBody] UpdateFactura datos) { RespuestaTransaccion RG = new RespuestaTransaccion(); Response_GetFacturaWithDetailscs facturaResponse = new Response_GetFacturaWithDetailscs(); GetFacturaDetailResponse consulta = new GetFacturaDetailResponse(); using (FacturadorWebContext bd = new FacturadorWebContext()) { var facturaEnProceso = bd.Factura.FirstOrDefault(x => x.IdUsuario == datos.idUsuario && x.IdEstado == 1); facturaResponse = consulta.ConsultarDetalleFactura(facturaEnProceso); if (facturaEnProceso != null) { facturaEnProceso.ValorTotal = facturaResponse.valorTotal; facturaEnProceso.ValorSubtotal = facturaResponse.valorSubtotal; facturaEnProceso.ValorIva = facturaResponse.valorIva; facturaEnProceso.ValorDescuento = facturaResponse.valorDescuento; facturaEnProceso.FechaCierre = DateTime.Now; if (datos.operacion == 1) { facturaEnProceso.IdEstado = 2; } if (datos.operacion == 2) { facturaEnProceso.IdEstado = 3; } bd.SaveChanges(); foreach (Productos p in facturaResponse.productos) { var inventario = bd.Inventario.SingleOrDefault(x => x.Id == p.Codigo); if (datos.operacion == 1) { inventario.TotalVendidos = inventario.TotalVendidos + p.Cantidad; } inventario.TotalProceso = inventario.TotalProceso - p.Cantidad; bd.SaveChanges(); } return(RG.GenerarRespuesta("Operacion Exitosa", "0000")); } else { return(RG.GenerarRespuesta("Error, El operador no tiene una factura en proceso", "0029")); } } }
public List <GetTiposDocumentos> Get() { List <TipoDocumento> consulta = null; List <GetTiposDocumentos> respuesta = new List <GetTiposDocumentos>(); using (FacturadorWebContext bd = new FacturadorWebContext()) { consulta = bd.TipoDocumento.ToList(); } foreach (TipoDocumento td in consulta) { GetTiposDocumentos tipo_documento = new GetTiposDocumentos(); tipo_documento.DESCRIPCION = td.Descripcion; tipo_documento.ACRONIMO = td.Acronimo; respuesta.Add(tipo_documento); } return(respuesta); }
public RespuestaTransaccion Post([FromBody] ClienteRequest clienteRequest) { RespuestaTransaccion RG = new RespuestaTransaccion(); try { using (FacturadorWebContext context = new FacturadorWebContext()) { var TD = context.TipoDocumento.SingleOrDefault(x => x.Acronimo == clienteRequest.TIPO_DOCUMENTO); var resultado = context.Persona.Where(x => x.NumeroDocumento == clienteRequest.NUMERO_DOCUMENTO && x.IdTipoDocumento == TD.Id).ToList(); if (resultado.Count == 0) { Persona persona = new Persona(); persona.Nombre = clienteRequest.NOMBRE; persona.Apellido = clienteRequest.APELLIDO; persona.NumeroDocumento = clienteRequest.NUMERO_DOCUMENTO; persona.IdTipoDocumento = TD.Id; persona.Telefono = clienteRequest.TELEFONO; persona.Email = clienteRequest.EMAIL; persona.Direccion = clienteRequest.DIRECCION; context.Persona.Add(persona); context.SaveChanges(); int id_persona_transaccion = persona.Id; Cliente cliente = new Cliente(); cliente.Puntos = 0; cliente.IdPersona = id_persona_transaccion; context.Cliente.Add(cliente); context.SaveChanges(); return(RG.GenerarRespuesta("El cliente se registro con exito", "0000")); } else { return(RG.GenerarRespuesta("Error. El cliente ya existe en nuestra base de datos", "0003")); } } } catch (Exception ex) { return(RG.GenerarRespuesta("Ocurrio un error durante el proceso de registro", "0004", ex)); } }
public Response_GetFacturaEnProceso Get(int userId) { Response_GetFacturaEnProceso resultado = new Response_GetFacturaEnProceso(); RespuestaTransaccion RT = new RespuestaTransaccion(); using (FacturadorWebContext bd = new FacturadorWebContext()) { var usuario = bd.Usuario.FirstOrDefault(x => x.Id == userId && x.Estado == true); if (usuario != null) { var query = from F in bd.Factura join C in bd.Cliente on F.IdCliente equals C.Id join P in bd.Persona on C.IdPersona equals P.Id join T in bd.TipoDocumento on P.IdTipoDocumento equals T.Id where F.IdUsuario == userId && F.IdEstado == 1 select new Response_GetFacturaEnProceso { numeroFactura = F.Numero.ToString(), numerodocumento = P.NumeroDocumento, acronimo = T.Acronimo }; resultado = query.FirstOrDefault(); if (resultado != null) { resultado.respuestaTransaccion = RT.GenerarRespuesta("Error, el operador ya tiene una factura en proceso", "0023"); } else { resultado = new Response_GetFacturaEnProceso(); resultado.respuestaTransaccion = RT.GenerarRespuesta("Continuar proceso de facturacion - crear nueva factura", "0000"); } } else { resultado.respuestaTransaccion = RT.GenerarRespuesta("Error, el operador no existe o no tiene permisos para ejecutar el proceso de facturacion", "0024"); } } return(resultado); }
public RespuestaTransaccion Put([FromBody] PutRequest producto) { RespuestaTransaccion RT = new RespuestaTransaccion(); Inventario inventario; try { using (FacturadorWebContext bd = new FacturadorWebContext()) { inventario = bd.Inventario.SingleOrDefault(x => x.Id == producto.Codigo); if (inventario != null) { if (producto.Nombre != null && producto.PrecioCompra > 0 && producto.Descripcion != null && producto.PrecioVenta > producto.PrecioCompra) { inventario.Nombre = producto.Nombre; inventario.Descripcion = producto.Descripcion; inventario.PorcentajeDescuento = producto.PorcentajeDescuento; inventario.PorcentajeIva = producto.PorcentajeIva; inventario.PrecioCompra = producto.PrecioCompra; inventario.PrecioVenta = producto.PrecioVenta; bd.SaveChanges(); return(RT.GenerarRespuesta("Actualizacion exitosa", "0000")); } else { return(RT.GenerarRespuesta("Error, registro fallido. Los datos en el registro no son validos. ", "0015")); } } else { return(RT.GenerarRespuesta("Error. No se encontro el codigo del producto " + producto.Codigo + "", "0014")); } } } catch (Exception ex) { return(RT.GenerarRespuesta("Error. Ocurrio un error inesperado", "0013", ex)); } }
public ProductoInvetarioRespuestaTransaccion Get(int id) { Inventario Query_resultado = new Inventario(); using (FacturadorWebContext bd = new FacturadorWebContext()) { Query_resultado = bd.Inventario.SingleOrDefault(x => x.Id == id); } ProductoInvetarioRespuestaTransaccion resultado = new ProductoInvetarioRespuestaTransaccion(); RespuestaTransaccion respuesta = new RespuestaTransaccion(); if (Query_resultado != null) { resultado.Codigo = Query_resultado.Id; resultado.Descripcion = Query_resultado.Descripcion; resultado.Nombre = Query_resultado.Nombre; resultado.FechaRegistro = Query_resultado.FechaRegistro; resultado.TotalRecibidos = Query_resultado.TotalRecibidos; resultado.TotalVendidos = Query_resultado.TotalVendidos; resultado.TotalDevueltos = Query_resultado.TotalDevueltos; resultado.TotalDesincorporados = Query_resultado.TotalDesincorporados; resultado.TotalProceso = Query_resultado.TotalProceso; resultado.PrecioCompra = Query_resultado.PrecioCompra; resultado.PrecioVenta = Query_resultado.PrecioVenta; resultado.PorcentajeIva = Query_resultado.PorcentajeIva; resultado.PorcentajeDescuento = Query_resultado.PorcentajeDescuento; resultado.Respuesta = respuesta.GenerarRespuesta("Producto existe en nuestra base de datos", "0000"); } else { resultado.Respuesta = respuesta.GenerarRespuesta("Error al consultar inventario: el codigo de producto " + id + " no existe en nuestra base de datos", "0009"); } return(resultado); }
public RespuestaTransaccion Post([FromBody] PostRequest producto) { RespuestaTransaccion RT = new RespuestaTransaccion(); Inventario productoInventario = new Inventario(); try { if (producto.Nombre != null && producto.PrecioCompra > 0 && producto.Descripcion != null && producto.PrecioVenta > producto.PrecioCompra && producto.TotalRecibidos > 0) { productoInventario.Nombre = producto.Nombre; productoInventario.Descripcion = producto.Descripcion; productoInventario.PrecioCompra = producto.PrecioCompra; productoInventario.PrecioVenta = producto.PrecioVenta; productoInventario.TotalRecibidos = producto.TotalRecibidos; productoInventario.FechaRegistro = DateTime.Now; productoInventario.TotalDesincorporados = 0; productoInventario.TotalDevueltos = 0; productoInventario.TotalVendidos = 0; productoInventario.TotalProceso = 0; if (producto.PorcentajeDescuento == null) { productoInventario.PorcentajeDescuento = 0; } else { productoInventario.PorcentajeDescuento = producto.PorcentajeDescuento; } if (producto.PorcentajeIva == null) { productoInventario.PorcentajeIva = 0; } else { productoInventario.PorcentajeIva = producto.PorcentajeIva; } using (FacturadorWebContext bd = new FacturadorWebContext()) { bd.Inventario.Add(productoInventario); bd.SaveChanges(); } } else { return(RT.GenerarRespuesta("Error, registro fallido. Los datos en el registro no son validos. ", "0010")); } if (productoInventario.Id != 0) { return(RT.GenerarRespuesta("El producto se registro con exito bajo el codigo " + productoInventario.Id + "", "0000")); } else { return(RT.GenerarRespuesta("Error, registro fallido. Ocurrio un error inesperado crear el registro del producto", "0011")); } } catch (Exception ex) { return(RT.GenerarRespuesta("Error, registro fallido. Ocurrio un error inesperado crear el registro del producto", "0012", ex)); } }
public async Task <RespuestaTransaccion> PostAsync([FromBody] Request_Objetc_Add_Producto_To_Factura entrada) // agregar producto a la factura { RespuestaTransaccion RG = new RespuestaTransaccion(); GetFacturaDetailResponse consulta = new GetFacturaDetailResponse(); Response_GetFacturaWithDetailscs facturaResponse = new Response_GetFacturaWithDetailscs(); using (FacturadorWebContext bd = new FacturadorWebContext()) { var facturaEnProceso = bd.Factura.FirstOrDefault(x => x.IdUsuario == entrada.idUsuario && x.IdEstado == 1); if (facturaEnProceso != null) { var productoInventario = bd.Inventario.FirstOrDefault(x => x.Id == entrada.codBarras); if (productoInventario != null) { //varificar si hay unidades disponibles y si hay unidades entonces descontar unidad del total disponible y aumentar unidades en proceso if ((productoInventario.TotalRecibidos - productoInventario.TotalVendidos - productoInventario.TotalProceso - productoInventario.TotalDevueltos - productoInventario.TotalDesincorporados) > 0) { productoInventario.TotalProceso++; bd.SaveChanges(); var productoProductoEnProceso = bd.Producto.FirstOrDefault(x => x.IdInventario == entrada.codBarras && x.IdFactura == facturaEnProceso.Id); if (productoProductoEnProceso != null) { productoProductoEnProceso.Cantidad++; productoProductoEnProceso.ValorTotal = productoProductoEnProceso.ValorUnitario * productoProductoEnProceso.Cantidad; productoProductoEnProceso.ValorTotalDescuento = (productoProductoEnProceso.PorcentajeDescuento * productoProductoEnProceso.ValorTotal) / 100; productoProductoEnProceso.ValorTotalIva = (productoProductoEnProceso.PorcentajeIva * productoProductoEnProceso.ValorTotal) / 100; } else { Producto producto = new Producto(); producto.ValorUnitario = productoInventario.PrecioVenta; producto.ValorTotal = productoInventario.PrecioVenta; producto.Cantidad = 1; producto.PorcentajeIva = productoInventario.PorcentajeIva; producto.ValorTotalIva = (productoInventario.PorcentajeIva * producto.ValorTotal) / 100; producto.PorcentajeDescuento = productoInventario.PorcentajeDescuento; producto.ValorTotalDescuento = (productoInventario.PorcentajeDescuento * producto.ValorTotal) / 100; producto.IdFactura = facturaEnProceso.Id; producto.IdInventario = entrada.codBarras; bd.Producto.Add(producto); } bd.SaveChanges(); facturaResponse = consulta.ConsultarDetalleFactura(facturaEnProceso); await _hubContext.Clients.All.SendAsync("SignalrFacturaReceived", facturaResponse); return(RG.GenerarRespuesta("Producto añadido con exito", "0000")); } else { return(RG.GenerarRespuesta("Error. el producto bajo el codigo indicado no tiene unidades disponibles en el inventario", "0017")); } } else { return(RG.GenerarRespuesta("Error, el codigo de producto no existe en BD", "0016")); } } else { return(RG.GenerarRespuesta("Error, El operador no tiene una factura en proceso", "0018")); } } }
public Response_GetFacturaWithDetailscs ConsultarDetalleFactura(Factura factura) { Response_GetFacturaWithDetailscs facturaResponse = new Response_GetFacturaWithDetailscs(); RespuestaTransaccion RT = new RespuestaTransaccion(); try { using (FacturadorWebContext bd = new FacturadorWebContext()) { List <Productos> ListadoProductos = new List <Productos>(); Datoscliente cliente = new Datoscliente(); var query1 = from C in bd.Cliente join P in bd.Persona on C.IdPersona equals P.Id join T in bd.TipoDocumento on P.IdTipoDocumento equals T.Id where C.Id == factura.IdCliente select new Datoscliente { nombreCliente = P.Nombre, apellidoCliente = P.Apellido, acronimoCliente = T.Acronimo, documentoCliente = P.NumeroDocumento }; cliente = query1.FirstOrDefault(); var productos = bd.Producto.Where(x => x.IdFactura == factura.Id && x.Cantidad > 0).ToList(); facturaResponse.valorSubtotal = 0; facturaResponse.valorIva = 0; facturaResponse.valorDescuento = 0; facturaResponse.valorTotal = 0; foreach (Producto p in productos) { var inventario = bd.Inventario.FirstOrDefault(x => x.Id == p.IdInventario); Productos prod = new Productos(); prod.Codigo = Convert.ToInt32(p.IdInventario); prod.nombre = inventario.Nombre; prod.descripcion = inventario.Descripcion; prod.Cantidad = p.Cantidad; prod.ValorUnitario = p.ValorUnitario; prod.ValorTotal = p.ValorTotal; prod.PorcentajeDescuento = p.PorcentajeDescuento; prod.ValorTotalDescuento = p.ValorTotalDescuento; prod.PorcentajeIva = p.PorcentajeIva; prod.ValorTotalIva = p.ValorTotalIva; /* valores en factura */ facturaResponse.valorSubtotal = facturaResponse.valorSubtotal + p.ValorTotal; facturaResponse.valorIva = facturaResponse.valorIva + p.ValorTotalIva; facturaResponse.valorDescuento = facturaResponse.valorDescuento + p.ValorTotalDescuento; ListadoProductos.Add(prod); } facturaResponse.valorTotal = facturaResponse.valorSubtotal - facturaResponse.valorDescuento + facturaResponse.valorIva; facturaResponse.numeroFactura = factura.Numero.ToString(); facturaResponse.cliente = cliente; facturaResponse.respuestaTransaccion = RT.GenerarRespuesta("Consulta exitosa", "0000"); facturaResponse.productos = ListadoProductos; } } catch (Exception ex) { facturaResponse.respuestaTransaccion = RT.GenerarRespuesta("Ocurrio un error: " + ex.Message, "9090"); return(facturaResponse); } return(facturaResponse); }