示例#1
0
        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));
        }
示例#2
0
        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);
            }
        }