public async Task <IActionResult> registrarOrden(OrdenServicioForRegister ordenServicioForRegister) { var destinatario = await _repodestinatario.Get(x => x.razonsocial == ordenServicioForRegister.destinatario); if (destinatario == null) { Destinatario destinatarioNew = new Destinatario { razonsocial = ordenServicioForRegister.destinatario , idcliente = ordenServicioForRegister.idcliente }; await _repodestinatario.AddAsync(destinatarioNew); await _repodestinatario.SaveAll(); ordenServicioForRegister.iddestinatario = destinatarioNew.id; } else { ordenServicioForRegister.iddestinatario = destinatario.id; } ordenServicioForRegister.fecharegistro = DateTime.Now; ordenServicioForRegister.activo = true; var resp = await _repoSeguimiento.OrdenServicioRegister(ordenServicioForRegister); return(Ok(resp)); }
public async Task <long> OrdenServicioRegister(OrdenServicioForRegister clienteForRegister) { OrdenServicio ordenServicio; GuiaRemisionRemitente guiaRemisionRemitente; using (var transaction = _context.Database.BeginTransaction()) { try { ordenServicio = new OrdenServicio(); ordenServicio.activo = clienteForRegister.activo; ordenServicio.direccionentrega = clienteForRegister.direccionentrega; ordenServicio.volumen = clienteForRegister.volumen; ordenServicio.estadoid = 4; // Registrado ordenServicio.fechadespacho = null; ordenServicio.fechaentrega = null; ordenServicio.fecharecojo = clienteForRegister.fecharecojo; ordenServicio.fecharegistro = clienteForRegister.fecharegistro; ordenServicio.horaentrega = null; ordenServicio.idcliente = clienteForRegister.idcliente; ordenServicio.iddestinatario = clienteForRegister.iddestinatario; ordenServicio.iddestino = clienteForRegister.iddestino; ordenServicio.idmanifiesto = null; ordenServicio.idorigen = clienteForRegister.idorigen; ordenServicio.idtiposervicio = clienteForRegister.idtiposervicio; ordenServicio.numeroservicio = ""; await _context.OrdenServicios.AddAsync(ordenServicio); await _context.SaveChangesAsync(); string[] prm = clienteForRegister.grr.Split(','); foreach (var item in prm) { if (item == "") { continue; } guiaRemisionRemitente = new GuiaRemisionRemitente(); guiaRemisionRemitente.numeroguia = item; guiaRemisionRemitente.idordenservicio = ordenServicio.id; _context.guiaRemisionRemitentes.Add(guiaRemisionRemitente); } ordenServicio.numeroservicio = ordenServicio.id.ToString().PadLeft(10, '0'); await _context.SaveChangesAsync(); transaction.Commit(); } catch (System.Exception ex) { transaction.Rollback(); var sqlException = ex.InnerException as System.Data.SqlClient.SqlException; if (sqlException.Number == 2601 || sqlException.Number == 2627) { throw new ArgumentException("El cliente ya existe"); } else { throw new ArgumentException("Error al insertar"); } } return(ordenServicio.id); } }