public async Task <ActionResult> GetCertificadoDepositoByNoCD(Int64 NoCD) { CertificadoDeposito Items = new CertificadoDeposito(); try { Items = await _context.CertificadoDeposito.Include(q => q._CertificadoLine).Where(q => q.NoCD == NoCD).FirstOrDefaultAsync(); } catch (Exception ex) { _logger.LogError($"Ocurrio un error: { ex.ToString() }"); return(BadRequest($"Ocurrio un error:{ex.Message}")); } return(Ok(Items)); }
public async Task <IActionResult> Delete([FromBody] CertificadoDeposito _CertificadoDeposito) { CertificadoDeposito _CertificadoDepositoq = new CertificadoDeposito(); try { _CertificadoDepositoq = _context.CertificadoDeposito .Where(x => x.IdCD == (Int64)_CertificadoDeposito.IdCD) .FirstOrDefault(); _context.CertificadoDeposito.Remove(_CertificadoDepositoq); await _context.SaveChangesAsync(); } catch (Exception ex) { _logger.LogError($"Ocurrio un error: { ex.ToString() }"); return(BadRequest($"Ocurrio un error:{ex.Message}")); } return(await Task.Run(() => Ok(_CertificadoDepositoq))); }
public async Task <ActionResult <CertificadoDeposito> > Update([FromBody] CertificadoDeposito _CertificadoDeposito) { CertificadoDeposito _CertificadoDepositoq = _CertificadoDeposito; try { _CertificadoDepositoq = await(from c in _context.CertificadoDeposito .Where(q => q.IdCD == _CertificadoDeposito.IdCD) select c ).FirstOrDefaultAsync(); _context.Entry(_CertificadoDepositoq).CurrentValues.SetValues((_CertificadoDeposito)); //_context.CertificadoDeposito.Update(_CertificadoDepositoq); await _context.SaveChangesAsync(); } catch (Exception ex) { _logger.LogError($"Ocurrio un error: { ex.ToString() }"); return(BadRequest($"Ocurrio un error:{ex.Message}")); } return(await Task.Run(() => Ok(_CertificadoDepositoq))); }
public async Task <ActionResult <CertificadoDeposito> > AnularCD([FromBody] CertificadoDeposito _CertificadoDeposito) { CertificadoDeposito _CertificadoDepositoq = _CertificadoDeposito; try { using (var transaction = _context.Database.BeginTransaction()) { try { _CertificadoDepositoq = await _context.CertificadoDeposito .Where(q => q.IdCD == _CertificadoDeposito.IdCD) .FirstOrDefaultAsync(); _CertificadoDepositoq.IdEstado = _CertificadoDeposito.IdEstado; _CertificadoDepositoq.Estado = _CertificadoDeposito.Estado; SolicitudCertificadoDeposito _solicitudq = await(from c in _context.SolicitudCertificadoDeposito .Where(q => q.NoCD == _CertificadoDepositoq.NoCD) select c ).FirstOrDefaultAsync(); _context.Entry(_CertificadoDepositoq).CurrentValues.SetValues((_CertificadoDepositoq)); BitacoraWrite _write = new BitacoraWrite(_context, new Bitacora { IdOperacion = _CertificadoDeposito.IdCD, DocType = "CertificadoDeposito", ClaseInicial = Newtonsoft.Json.JsonConvert.SerializeObject(_CertificadoDepositoq, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }), ResultadoSerializado = Newtonsoft.Json.JsonConvert.SerializeObject(_CertificadoDeposito, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }), Accion = "Anular", FechaCreacion = DateTime.Now, FechaModificacion = DateTime.Now, UsuarioCreacion = _CertificadoDeposito.UsuarioCreacion, UsuarioModificacion = _CertificadoDeposito.UsuarioModificacion, UsuarioEjecucion = _CertificadoDeposito.UsuarioModificacion, }); await _context.SaveChangesAsync(); SolicitudCertificadoDeposito _solicitud = _solicitudq; _solicitud.IdEstado = 3; _solicitud.Estado = "Anulado"; _context.Entry(_solicitudq).CurrentValues.SetValues((_solicitud)); Kardex _kardexentrada = await(from c in _context.Kardex .Include(q => q._KardexLine) .Where(q => q.DocumentId == _CertificadoDeposito.IdCD) .Where(q => q.DocumentName == "CD") select c).FirstOrDefaultAsync(); Kardex _kardexsalida = new Kardex { KardexDate = _kardexentrada.KardexDate, TypeOperationId = _kardexentrada.TypeOperationId, TypeOperationName = "Salida", DocumentId = _kardexentrada.DocumentId, DocumentName = _kardexentrada.DocumentName, DocType = _kardexentrada.DocType, DocName = _kardexentrada.DocName, CustomerId = _kardexentrada.CustomerId, CustomerName = _kardexentrada.CustomerName, CurrencyId = _kardexentrada.CurrencyId, CurrencyName = _kardexentrada.CustomerName, DocumentDate = DateTime.Now, FechaCreacion = DateTime.Now, FechaModificacion = DateTime.Now, UsuarioCreacion = _kardexentrada.UsuarioCreacion, UsuarioModificacion = _CertificadoDeposito.UsuarioModificacion, }; _kardexsalida.DocumentDate = DateTime.Now; _kardexsalida.KardexDate = DateTime.Now; _kardexsalida.TypeOperationName = "Salida"; List <KardexLine> _entradas = new List <KardexLine>(); _entradas.AddRange(_kardexentrada._KardexLine); // _kardexsalida._KardexLine.Clear(); _kardexsalida.KardexId = 0; // await _context.SaveChangesAsync(); foreach (var item in _entradas) { _kardexsalida._KardexLine.Add(new KardexLine { //KardexId = _kardexsalida.KardexId, //KardexLineId=0, DocumentDate = item.DocumentDate, // ProducId = _CertificadoDeposito., // ProductName = _GoodsReceivedq.ProductName, //TotalBags = item.QuantitySacos + _KardexLine.TotalBags, //QuantityEntryCD = item.Quantity / (1 + _subproduct.Merma), SubProducId = item.SubProducId, SubProductName = item.SubProductName, QuantityEntry = 0, QuantityOut = item.QuantityEntry, QuantityEntryBags = 0, BranchId = item.BranchId, BranchName = item.BranchName, WareHouseId = item.WareHouseId, WareHouseName = item.WareHouseName, UnitOfMeasureId = item.UnitOfMeasureId, UnitOfMeasureName = item.UnitOfMeasureName, TypeOperationId = 1, TypeOperationName = "Salida", Total = item.Total, KardexDate = DateTime.Now, QuantityOutCD = item.QuantityEntry, TotalCD = item.TotalCD - (item.QuantityEntry), }); } _context.Kardex.Add(_kardexsalida); //_context.CertificadoDeposito.Update(_CertificadoDepositoq); await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); _logger.LogError($"Ocurrio un error: { ex.ToString() }"); //return BadRequest($"Ocurrio un error:{ex.Message}"); } } } catch (Exception ex) { _logger.LogError($"Ocurrio un error: { ex.ToString() }"); return(BadRequest($"Ocurrio un error:{ex.Message}")); } return(Ok(_CertificadoDepositoq)); }
public async Task <ActionResult <CertificadoDeposito> > Insert([FromBody] CertificadoDepositoDTO _CertificadoDeposito) { CertificadoDeposito _CertificadoDepositoq = new CertificadoDeposito(); SolicitudCertificadoDeposito _SolicitudCertificado = new SolicitudCertificadoDeposito(); try { using (var transaction = _context.Database.BeginTransaction()) { try { //Solicitud de certificado // _SolicitudCertificado = mapper.Map<SolicitudCertificadoDeposito>(_CertificadoDeposito); _SolicitudCertificado = new SolicitudCertificadoDeposito { CurrencyId = _CertificadoDeposito.CurrencyId, CurrencyName = _CertificadoDeposito.CurrencyName, BankName = _CertificadoDeposito.BankName, BankId = _CertificadoDeposito.BankId, Almacenaje = _CertificadoDeposito.Almacenaje, CustomerId = _CertificadoDeposito.CustomerId, CustomerName = _CertificadoDeposito.CustomerName, Direccion = _CertificadoDeposito.Direccion, EmpresaSeguro = _CertificadoDeposito.EmpresaSeguro, Estado = _CertificadoDeposito.Estado, FechaCertificado = _CertificadoDeposito.FechaCertificado, FechaFirma = _CertificadoDeposito.FechaFirma, FechaInicioComputo = _CertificadoDeposito.FechaInicioComputo, FechaVencimientoDeposito = _CertificadoDeposito.FechaVencimientoDeposito, FechaVencimiento = _CertificadoDeposito.FechaVencimiento, NoCD = _CertificadoDeposito.NoCD, FechaPagoBanco = _CertificadoDeposito.FechaPagoBanco, NombreEmpresa = _CertificadoDeposito.NombreEmpresa, LugarFirma = _CertificadoDeposito.LugarFirma, MontoGarantia = _CertificadoDeposito.MontoGarantia, NoPoliza = _CertificadoDeposito.NoPoliza, NombrePrestatario = _CertificadoDeposito.NombrePrestatario, NoTraslado = _CertificadoDeposito.NoTraslado, OtrosCargos = _CertificadoDeposito.OtrosCargos, PorcentajeInteresesInsolutos = _CertificadoDeposito.PorcentajeInteresesInsolutos, Seguro = _CertificadoDeposito.Seguro, ServicioId = _CertificadoDeposito.ServicioId, ServicioName = _CertificadoDeposito.ServicioName, Quantitysum = _CertificadoDeposito.Quantitysum, Total = _CertificadoDeposito.Total, SujetasAPago = _CertificadoDeposito.SujetasAPago, WarehouseId = _CertificadoDeposito.WarehouseId, WarehouseName = _CertificadoDeposito.WarehouseName, Aduana = _CertificadoDeposito.Aduana, ManifiestoNo = _CertificadoDeposito.ManifiestoNo, }; _context.SolicitudCertificadoDeposito.Add(_SolicitudCertificado); foreach (var item in _CertificadoDeposito._CertificadoLine) { SolicitudCertificadoLine _SolicitudCertificadoLine = new SolicitudCertificadoLine { Amount = item.Amount, Description = item.Description, // IdCD = item.IdCD, Price = item.Price, Quantity = item.Quantity, SubProductId = item.SubProductId, SubProductName = item.SubProductName, TotalCantidad = item.TotalCantidad, UnitMeasureId = item.UnitMeasureId, UnitMeasurName = item.UnitMeasurName, }; // _SolicitudCertificadoLine = mapper.Map<SolicitudCertificadoLine>(item); _SolicitudCertificadoLine.IdSCD = _SolicitudCertificado.IdSCD; _context.SolicitudCertificadoLine.Add(_SolicitudCertificadoLine); } await _context.SaveChangesAsync(); ///////////////////////////////////////////////////////////////////////// //////////////////Certificado//////////////////////////////////////////// _CertificadoDepositoq = _CertificadoDeposito; _context.CertificadoDeposito.Add(_CertificadoDepositoq); // await _context.SaveChangesAsync(); foreach (var item in _CertificadoDeposito._CertificadoLine) { item.IdCD = _CertificadoDepositoq.IdCD; _context.CertificadoLine.Add(item); //Kardex _kardexmax = await (from kdx in _context.Kardex // .Where(q => q.CustomerId == _CertificadoDepositoq.CustomerId) // from kdxline in _context.KardexLine // .Where(q => q.KardexId == kdx.KardexId) // .Where(o => o.SubProducId == item.SubProductId) // .OrderByDescending(o => o.DocumentDate).Take(1) // select kdx).FirstOrDefaultAsync(); Kardex _kardexmax = await(from c in _context.Kardex .OrderByDescending(q => q.DocumentDate) // .Take(1) join d in _context.KardexLine on c.KardexId equals d.KardexId where c.CustomerId == _CertificadoDepositoq.CustomerId && d.SubProducId == item.SubProductId && c.DocumentName == "CD" select c ) .FirstOrDefaultAsync(); if (_kardexmax == null) { _kardexmax = new Kardex(); } KardexLine _KardexLine = await _context.KardexLine .Where(q => q.KardexId == _kardexmax.KardexId) .Where(q => q.SubProducId == item.SubProductId) .OrderByDescending(q => q.KardexLineId) .Take(1) .FirstOrDefaultAsync(); if (_KardexLine == null) { _KardexLine = new KardexLine(); } SubProduct _subproduct = await(from c in _context.SubProduct .Where(q => q.SubproductId == item.SubProductId) select c ).FirstOrDefaultAsync(); // _context.GoodsReceivedLine.Add(item); item.Amount = item.Quantity + _KardexLine.Total; _CertificadoDeposito.Kardex._KardexLine.Add(new KardexLine { DocumentDate = _CertificadoDeposito.FechaCertificado, // ProducId = _CertificadoDeposito., // ProductName = _GoodsReceivedq.ProductName, SubProducId = item.SubProductId, SubProductName = item.SubProductName, QuantityEntry = item.Quantity, QuantityOut = 0, QuantityEntryBags = item.TotalCantidad, BranchId = _CertificadoDeposito.BranchId, BranchName = _CertificadoDeposito.BranchName, WareHouseId = _CertificadoDeposito.WarehouseId, WareHouseName = _CertificadoDeposito.WarehouseName, UnitOfMeasureId = item.UnitMeasureId, UnitOfMeasureName = item.UnitMeasurName, TypeOperationId = 1, TypeOperationName = "Entrada", // Total = item.Amount, //TotalBags = item.QuantitySacos + _KardexLine.TotalBags, //QuantityEntryCD = item.Quantity / (1 + _subproduct.Merma), QuantityEntryCD = item.Quantity, TotalCD = _KardexLine.TotalCD + (item.Quantity), }); } await _context.SaveChangesAsync(); BitacoraWrite _write = new BitacoraWrite(_context, new Bitacora { IdOperacion = _CertificadoDeposito.IdCD, DocType = "CertificadoDeposito", ClaseInicial = Newtonsoft.Json.JsonConvert.SerializeObject(_CertificadoDeposito, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }), ResultadoSerializado = Newtonsoft.Json.JsonConvert.SerializeObject(_CertificadoDeposito, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }), Accion = "Insertar", FechaCreacion = DateTime.Now, FechaModificacion = DateTime.Now, UsuarioCreacion = _CertificadoDeposito.UsuarioCreacion, UsuarioModificacion = _CertificadoDeposito.UsuarioModificacion, UsuarioEjecucion = _CertificadoDeposito.UsuarioModificacion, }); await _context.SaveChangesAsync(); foreach (var item in _CertificadoDeposito.RecibosAsociados) { // GoodsReceivedLine _gr = await _context.GoodsReceivedLine.Where(q => q.GoodsReceivedId == item).FirstOrDefaultAsync(); RecibosCertificado _recibocertificado = new RecibosCertificado { IdCD = _CertificadoDepositoq.IdCD, IdRecibo = item, productocantidadbultos = _CertificadoDeposito.Quantitysum, productorecibolempiras = _CertificadoDeposito.Total, // WareHouseId = _gr.WareHouseId, // WareHouseName = _gr.WareHouseName, // UnitMeasureId =_CertificadoDeposito. }; _context.RecibosCertificado.Add(_recibocertificado); } _CertificadoDeposito.Kardex.DocType = 0; _CertificadoDeposito.Kardex.DocName = "CertificadoDeposito/CD"; _CertificadoDeposito.Kardex.DocumentDate = _CertificadoDeposito.FechaCertificado; _CertificadoDeposito.Kardex.FechaCreacion = DateTime.Now; _CertificadoDeposito.Kardex.FechaModificacion = DateTime.Now; _CertificadoDeposito.Kardex.TypeOperationId = 1; _CertificadoDeposito.Kardex.TypeOperationName = "Entrada"; _CertificadoDeposito.Kardex.KardexDate = DateTime.Now; _CertificadoDeposito.Kardex.DocumentName = "CD"; _CertificadoDeposito.Kardex.CustomerId = _CertificadoDeposito.CustomerId; _CertificadoDeposito.Kardex.CustomerName = _CertificadoDeposito.CustomerName; _CertificadoDeposito.Kardex.CurrencyId = _CertificadoDeposito.CurrencyId; _CertificadoDeposito.Kardex.CurrencyName = _CertificadoDeposito.CurrencyName; _CertificadoDeposito.Kardex.DocumentId = _CertificadoDeposito.IdCD; _CertificadoDeposito.Kardex.UsuarioCreacion = _CertificadoDeposito.UsuarioCreacion; _CertificadoDeposito.Kardex.UsuarioModificacion = _CertificadoDeposito.UsuarioModificacion; _context.Kardex.Add(_CertificadoDeposito.Kardex); await _context.SaveChangesAsync(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } //_CertificadoDepositoq = _CertificadoDeposito; //_context.CertificadoDeposito.Add(_CertificadoDepositoq); //await _context.SaveChangesAsync(); } catch (Exception ex) { _logger.LogError($"Ocurrio un error: { ex.ToString() }"); return(BadRequest($"Ocurrio un error:{ex.Message}")); } return(await Task.Run(() => Ok(_CertificadoDepositoq))); }