public async Task <IActionResult> Download([FromBody] DigitalizedFile digitalizedFile) { try { var folderName = Path.Combine("Resources", "DigitalizedFiles"); var uploads = Path.Combine(Directory.GetCurrentDirectory(), folderName); var filePath = Path.Combine(uploads, digitalizedFile.FileRoute); if (!System.IO.File.Exists(filePath)) { return(NotFound()); } var memory = new MemoryStream(); using (var stream = new FileStream(filePath, FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; return(File(memory, GetContentType(filePath), digitalizedFile.FileName)); } catch (Exception ex) { return(StatusCode(500, "Internal server error: " + ex.Message)); } }
public IActionResult Post([FromBody] PolicyPendingRegistrationSave policyPendingRegistrationSave) { int id = 0; if (!ModelState.IsValid) { return(BadRequest()); } using (var transaction = new TransactionScope()) { try { if (!policyPendingRegistrationSave.PolicyPendingRegistration.CreationDate.HasValue) { policyPendingRegistrationSave.PolicyPendingRegistration.CreationDate = DateTime.Now; } string idUser = User.Claims.Where(c => c.Type.Equals(ClaimTypes.PrimarySid)).FirstOrDefault().Value; policyPendingRegistrationSave.PolicyPendingRegistration.IdUser = int.Parse(idUser); id = _unitOfWork.PolicyPendingRegistration.Insert(policyPendingRegistrationSave.PolicyPendingRegistration); PolicyList policy = _unitOfWork.Policy.PolicyListById(policyPendingRegistrationSave.PolicyPendingRegistration.IdPolicy); //Debemos guardar el documento digital y asociarlo al recaudo DigitalizedFile digitalizedFile = policyPendingRegistrationSave.DigitalizedFile; if (digitalizedFile != null) { digitalizedFile.IdPolicyOrder = policy.IdPolicyOrder; digitalizedFile.Date = DateTime.Now; digitalizedFile.Description = "MATRICULA VEHÍCULO"; _unitOfWork.DigitalizedFile.Insert(digitalizedFile); } transaction.Complete(); } catch (System.Data.SqlClient.SqlException sqlex) { transaction.Dispose(); if (sqlex.Number.Equals(2601)) { return(StatusCode(500, "No se puede ingresar el registro de matricula mas de una vez")); } return(StatusCode(500, "Internal server error: " + sqlex.Message)); } catch (Exception ex) { transaction.Dispose(); return(StatusCode(500, "Internal server error: " + ex.Message)); } } return(Ok(id)); }
public IActionResult Post([FromBody] DigitalizedFile digitalizedFile) { try { if (!ModelState.IsValid) { return(BadRequest()); } return(Ok(_unitOfWork.DigitalizedFile.Insert(digitalizedFile))); } catch (Exception ex) { return(StatusCode(500, "Internal server error: " + ex.Message)); } }
public IActionResult Put([FromBody] DigitalizedFile digitalizedFile) { try { if (ModelState.IsValid && _unitOfWork.DigitalizedFile.Update(digitalizedFile)) { return(Ok(new { Message = "El archivo digitalizado se ha actualizado" })); } else { return(BadRequest()); } } catch (Exception ex) { return(StatusCode(500, "Internal server error: " + ex.Message)); } }
public IActionResult Post([FromBody] PolicyOutlaySave policyOutlaySave) { int idPolicyOutlay = 0; if (!ModelState.IsValid) { return(BadRequest()); } using (var transaction = new TransactionScope()) { try { string idUser = User.Claims.Where(c => c.Type.Equals(ClaimTypes.PrimarySid)).FirstOrDefault().Value; policyOutlaySave.PolicyOutlay.IdUser = int.Parse(idUser); policyOutlaySave.PolicyOutlay.CreationDate = DateTime.Now; idPolicyOutlay = _unitOfWork.PolicyOutlay.Insert(policyOutlaySave.PolicyOutlay); // Actualizamos las cuotas financiadas con el día de pago real IEnumerable <PolicyFeeFinancialList> policyFees = _unitOfWork.PolicyFeeFinancial.PolicyFeeFinancialListByPolicy(policyOutlaySave.PolicyOutlay.IdPolicy, false); foreach (PolicyFeeFinancialList item in policyFees) { if (item.DatePayment.HasValue) { int day = policyOutlaySave.PolicyOutlay.PayDay; int lastDay = DateTime.DaysInMonth(item.DatePayment.Value.Year, item.DatePayment.Value.Month); if (day >= lastDay) { day = lastDay; } DateTime datePayment = new DateTime(item.DatePayment.Value.Year, item.DatePayment.Value.Month, day); item.DatePayment = datePayment; _unitOfWork.PolicyFeeFinancial.Update(item); } } Policy policy = _unitOfWork.Policy.GetById(policyOutlaySave.PolicyOutlay.IdPolicy); Customer customer = _unitOfWork.Customer.InsuredListByPolicy(policyOutlaySave.PolicyOutlay.IdPolicy).FirstOrDefault(); //Debemos generar el recaudo L3 aplicando el desembolso PaymentType paymentType = _unitOfWork.PaymentType.GetList().Where(p => p.Id.Equals("L3")).FirstOrDefault(); paymentType.Number = paymentType.Number + 1; _unitOfWork.PaymentType.Update(paymentType); Payment payment = new Payment(); payment.DateCreated = DateTime.Now; payment.DatePayment = policyOutlaySave.DatePayment; payment.IdPaymentType = "L3"; payment.IdUser = int.Parse(idUser); payment.IdCustomer = customer.Id; payment.Number = paymentType.Number; //payment.PaidDestination = "A"; payment.State = "A"; payment.Observation = "DESEMBOLSO"; payment.Total = (float)policy.TotalValue; payment.TotalReceived = (float)policy.TotalValue; payment.TotalValue = (float)policy.TotalValue; int idPayment = _unitOfWork.Payment.Insert(payment); policyOutlaySave.PolicyOutlay.Id = idPolicyOutlay; policyOutlaySave.PolicyOutlay.IdPayment = idPayment; _unitOfWork.PolicyOutlay.Update(policyOutlaySave.PolicyOutlay); PaymentDetail paymentDetail = new PaymentDetail(); paymentDetail.DatePayFinancial = DateTime.Now; paymentDetail.DueInterestValue = 0; paymentDetail.FeeNumber = 1; paymentDetail.IdPayment = idPayment; paymentDetail.IdPolicy = policy.Id; paymentDetail.InitialFee = false; paymentDetail.Value = (float)policy.TotalValue; paymentDetail.ValueOwnProduct = 0; _unitOfWork.PaymentDetail.Insert(paymentDetail); //Debemos guardar el documento digital y asociarlo al recaudo DigitalizedFile digitalizedFile = policyOutlaySave.DigitalizedFile; if (digitalizedFile != null) { digitalizedFile.IdPayment = idPayment; digitalizedFile.Date = DateTime.Now; digitalizedFile.Description = "DESEMBOLSO CREDITO #: " + policyOutlaySave.PolicyOutlay.CreditNumber + ", RECAUDO: L3-" + payment.Number.ToString(); _unitOfWork.DigitalizedFile.Insert(digitalizedFile); } transaction.Complete(); } catch (Exception ex) { transaction.Dispose(); return(StatusCode(500, "Internal server error: " + ex.Message)); } } return(Ok(idPolicyOutlay)); }
public IActionResult Post([FromBody] PaymentSave Payment) { int idPayment = 0; if (!ModelState.IsValid) { return(BadRequest()); } using (var transaction = new TransactionScope()) { try { string idUser = User.Claims.Where(c => c.Type.Equals(ClaimTypes.PrimarySid)).FirstOrDefault().Value; Payment.Payment.IdUser = int.Parse(idUser); Payment.Payment.DateCreated = DateTime.Now; idPayment = _unitOfWork.Payment.Insert(Payment.Payment); StringBuilder policyList = new StringBuilder(); if (Payment.PaymentDetails != null && Payment.PaymentDetails.Count > 0) { foreach (var item in Payment.PaymentDetails) { switch (item.PaidDestination) { case "A": string text = "Póliza #{0} {1} {2} {3} {4}, Cuota: {5}, Valor {6}, Valor Int. Mora {7}"; if (policyList.Length > 0) { policyList.Append(" | " + string.Format(text, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value), String.Format("{0:0,0.0}", item.DueInterestValue))); } else { policyList.Append(string.Format(text, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value), String.Format("{0:0,0.0}", item.DueInterestValue))); } PaymentDetail paymentDetail = new PaymentDetail { FeeNumber = item.FeeNumber, IdPayment = idPayment, IdPolicy = item.IdPolicy, Value = item.Value, ValueOwnProduct = item.ValueOwnProduct, DueInterestValue = item.DueInterestValue, ValueDiscount = item.ValueDiscount }; _unitOfWork.PaymentDetail.Insert(paymentDetail); break; case "F": string textF = "Póliza #{0} {1} {2} {3} {4}, Cuota: {5}, Valor {6}, Valor Int. Mora {7}"; if (policyList.Length > 0) { policyList.Append(" | " + string.Format(textF, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value), String.Format("{0:0,0.0}", item.DueInterestValue))); } else { policyList.Append(string.Format(textF, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value), String.Format("{0:0,0.0}", item.DueInterestValue))); } PaymentDetailFinancial paymentDetailF = new PaymentDetailFinancial { FeeNumber = item.FeeNumber, IdPayment = idPayment, IdPolicy = item.IdPolicy, Value = item.Value, DueInterestValue = item.DueInterestValue }; _unitOfWork.PaymentDetailFinancial.Insert(paymentDetailF); break; case "P": string textP = "Póliza #{0} {1} {2} {3} {4}, Cuota: {5}, Valor {6}"; if (policyList.Length > 0) { policyList.Append(" | " + string.Format(textP, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value))); } else { policyList.Append(string.Format(textP, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value))); } PaymentDetailProduct paymentDetailP = new PaymentDetailProduct { FeeNumber = item.FeeNumber, IdPayment = idPayment, IdPolicy = item.IdPolicy, Value = item.Value }; _unitOfWork.PaymentDetailProduct.Insert(paymentDetailP); break; } } //if (Payment.Payment.PaidDestination.Equals("A")) //{ // foreach (var item in Payment.PaymentDetails) // { // string text = "Póliza #{0} {1} {2} {3} {4}, Cuota: {5}, Valor {6}, Valor Int. Mora {7}"; // if (policyList.Length > 0) // policyList.Append(" | " + string.Format(text, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value), String.Format("{0:0,0.0}", item.DueInterestValue))); // else // policyList.Append(string.Format(text, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value), String.Format("{0:0,0.0}", item.DueInterestValue))); // PaymentDetail paymentDetail = new PaymentDetail { FeeNumber = item.FeeNumber, IdPayment = idPayment, IdPolicy = item.IdPolicy, Value = item.Value, ValueOwnProduct = item.ValueOwnProduct, DueInterestValue = item.DueInterestValue }; // _unitOfWork.PaymentDetail.Insert(paymentDetail); // } //} //else //{ // foreach (var item in Payment.PaymentDetails) // { // string text = "Póliza #{0} {1} {2} {3} {4}, Cuota: {5}, Valor {6}, Valor Int. Mora {7}"; // if (policyList.Length > 0) // policyList.Append(" | " + string.Format(text, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value), String.Format("{0:0,0.0}", item.DueInterestValue))); // else // policyList.Append(string.Format(text, item.Number, item.MovementShort, item.InsuranceDesc, item.InsuranceLineDesc, item.InsuranceSublineDesc, item.FeeNumber, String.Format("{0:0,0.0}", item.Value), String.Format("{0:0,0.0}", item.DueInterestValue))); // PaymentDetailFinancial paymentDetail = new PaymentDetailFinancial { FeeNumber = item.FeeNumber, IdPayment = idPayment, IdPolicy = item.IdPolicy, Value = item.Value, DueInterestValue = item.DueInterestValue }; // _unitOfWork.PaymentDetailFinancial.Insert(paymentDetail); // } //} } //Actualizamos el consecutivo PaymentType paymentType = _unitOfWork.PaymentType.GetList().Where(p => p.Id.Equals(Payment.Payment.IdPaymentType)).FirstOrDefault(); paymentType.Number = Payment.Payment.Number; _unitOfWork.PaymentType.Update(paymentType); //Creamos gestión con el recaudo realizado Customer customer = _unitOfWork.Customer.GetById(Payment.Payment.IdCustomer); string customerName = customer.FirstName + (string.IsNullOrEmpty(customer.MiddleName) ? "" : " " + customer.MiddleName) + customer.LastName + (string.IsNullOrEmpty(customer.MiddleLastName) ? "" : " " + customer.MiddleLastName); string textSubject = "Creación Pago {0} # {1}, Total: {2}, Cliente: {3}, Detalle Pago: {4}"; string subject = string.Format(textSubject, paymentType.Alias, Payment.Payment.Number, String.Format("{0:0,0.0}", Payment.Payment.TotalValue), customerName, policyList.ToString()); Management management = new Management { ManagementType = "G", CreationUser = int.Parse(idUser), StartDate = DateTime.Now, EndDate = DateTime.Now, State = "R", Subject = subject, ManagementPartner = "R", IdCustomer = Payment.Payment.IdCustomer, IsExtra = false, IdPayment = idPayment }; _unitOfWork.Management.Insert(management); //Actualizamos el id en los digitales foreach (int id in Payment.Digitals) { DigitalizedFile digitalizedFile = _unitOfWork.DigitalizedFile.GetById(id); digitalizedFile.IdPayment = idPayment; _unitOfWork.DigitalizedFile.Update(digitalizedFile); } transaction.Complete(); } catch (Exception ex) { transaction.Dispose(); return(StatusCode(500, "Internal server error: " + ex.Message)); } } return(Ok(idPayment)); }