public void Modificar(ClienteDto dto) { using (var context = new ModeloXCommerceContainer()) { var clienteModificar = context.Personas.OfType <AccesoDatos.Cliente>() .Include(x => x.Direccion) .FirstOrDefault(x => x.Id == dto.Id); if (clienteModificar == null) { throw new Exception("No se encontro el Cliente"); } clienteModificar.Apellido = dto.Apellido; clienteModificar.Nombre = dto.Nombre; clienteModificar.Dni = dto.Dni; clienteModificar.Telefono = dto.Telefono; clienteModificar.Celular = dto.Celular; clienteModificar.Email = dto.Email; clienteModificar.Cuil = dto.Cuil; clienteModificar.FechaNacimiento = dto.FechaNacimiento; clienteModificar.Foto = dto.Foto; clienteModificar.Direccion.Calle = dto.Calle; clienteModificar.Direccion.Numero = dto.Numero; clienteModificar.Direccion.Piso = dto.Piso; clienteModificar.Direccion.Dpto = dto.Dpto; clienteModificar.Direccion.Casa = dto.Casa; clienteModificar.Direccion.Lote = dto.Lote; clienteModificar.Direccion.Barrio = dto.Barrio; clienteModificar.Direccion.Mza = dto.Mza; clienteModificar.Direccion.LocalidadId = dto.LocalidadId; CuentaCorrienteServicio cta = new CuentaCorrienteServicio(); if (clienteModificar.MontoMaximoCtaCte == 0 && dto.Sobregiro > 0) { cta.Agregar(clienteModificar.Id, dto.Sobregiro); } if (clienteModificar.MontoMaximoCtaCte > 0 && dto.Sobregiro == 0) { cta.Eliminar(clienteModificar.Id); } if (clienteModificar.MontoMaximoCtaCte > 0 && dto.Sobregiro > 0) { var cuenta = cta.ObtenerCorrientePorClienteId(clienteModificar.Id); cuenta.Limite = dto.Sobregiro; cta.ModificarPorId(cuenta); } clienteModificar.MontoMaximoCtaCte = dto.Sobregiro; context.SaveChanges(); } }
public long Insertar(ClienteDto dto) { using (var context = new ModeloXCommerceContainer()) { var nuevoCliente = new AccesoDatos.Cliente { Apellido = dto.Apellido, Nombre = dto.Nombre, Dni = dto.Dni, Telefono = dto.Telefono, Celular = dto.Celular, Email = dto.Email, Cuil = dto.Cuil, FechaNacimiento = dto.FechaNacimiento, Foto = dto.Foto, MontoMaximoCtaCte = dto.Sobregiro, Direccion = new Direccion { Calle = dto.Calle, Numero = dto.Numero, Piso = dto.Piso, Dpto = dto.Dpto, Casa = dto.Casa, Lote = dto.Lote, Barrio = dto.Barrio, Mza = dto.Mza, LocalidadId = dto.LocalidadId } }; context.Personas.Add(nuevoCliente); context.SaveChanges(); if (nuevoCliente.MontoMaximoCtaCte > 0) { CuentaCorrienteServicio cta = new CuentaCorrienteServicio(); cta.Agregar(nuevoCliente.Id, nuevoCliente.MontoMaximoCtaCte); } return(nuevoCliente.Id); } }
public void Entregar(DeliveryDto comprobante) { using (var context = new ModeloXCommerceContainer()) { var Comprobante = context.Comprobantes.OfType <AccesoDatos.ComprobanteDelivery>().FirstOrDefault(x => x.Id == comprobante.Id); Comprobante.EstadoPedido = EstadoPedido.Entregado; Comprobante.TipoComprobante = comprobante.TipoComprobante; var movimiento = new MovimientoServicio(); movimiento.GenerarMovimiento(new MovimientoDto { Monto = comprobante.Total, CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, TipoMovimento = TipoMovimiento.Ingreso, UsuarioId = Entidad.Entidad.UsuarioId, Descripcion = $"FC_{ Comprobante.TipoComprobante }_{ comprobante.Numero.ToString("0000") }_{ comprobante.Fecha.ToString("ddmmyyyy") }" }); foreach (var item in Comprobante.DetalleComprobantes) { if (context.Articulos.FirstOrDefault(x => x.Id == item.ArticuloId).DescuentaStock) { var articulo = context.Articulos.FirstOrDefault(x => x.Id == item.ArticuloId); if (articulo == null) { throw new Exception("No se encontro la entidad"); } articulo.Stock -= item.Cantidad; } } //TODO MovimientoServicio m = new MovimientoServicio(); if (comprobante.MontoEfectivo > 0) { //GENERAR MOVIMIENTO m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = comprobante.MontoEfectivo, TipoMovimento = TipoMovimiento.Ingreso, Descripcion = $"FC_{Comprobante.TipoComprobante}_{comprobante.Numero.ToString("0000")}_{comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } if (comprobante.MontoCtaCte > 0) { //CUENTA CORRIENTE NO GENERA DETALLE DE CAJA AL INSTANTE(DEBE PAGAR PARA GENERARLO) CuentaCorrienteServicio cta = new CuentaCorrienteServicio(); cta.Vender(comprobante.ClienteId, comprobante.Total); OperacionServicio op = new OperacionServicio(); op.Agregar(new OperacionDto { TipoOperacion = TipoOperacion.Venta, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = comprobante.MontoCtaCte, CuentaCorrienteId = cta.ObtenerCorrientePorClienteId(comprobante.ClienteId).Id }); //GENERAR MOVIMIENTO m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = comprobante.MontoCtaCte, TipoMovimento = TipoMovimiento.Ingreso, Descripcion = $"CC_{Comprobante.TipoComprobante}_{comprobante.Numero.ToString("0000")}_{comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } if (comprobante.MontoTarjeta > 0) { m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = comprobante.MontoTarjeta, TipoMovimento = TipoMovimiento.Ingreso, Descripcion = $"TC_{Comprobante.TipoComprobante}_{comprobante.Numero.ToString("0000")}_{comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } if (comprobante.MontoCheque > 0) { m.GenerarMovimiento(new MovimientoDto { CajaId = Entidad.Entidad.CajaId, ComprobanteId = comprobante.Id, Fecha = DateTime.Now, Monto = comprobante.MontoCheque, TipoMovimento = TipoMovimiento.Ingreso, Descripcion = $"CH_{Comprobante.TipoComprobante}_{comprobante.Numero.ToString("0000")}_{comprobante.Fecha.ToString("ddmmyyyy")}", UsuarioId = Entidad.Entidad.UsuarioId }); } context.SaveChanges(); } }