Example #1
0
        public GenericResponse <ConsultarWSResponse> ConsultarSeguimiento(string nroSeguimiento)
        {
            GenericResponse <ConsultarWSResponse> response = new GenericResponse <ConsultarWSResponse>();

            response.Code = 200;

            try
            {
                WSExterno.OCASA wsocasa = new WSExterno.OCASA();

                WSLog wsExternos = wsocasa.Consultar(nroSeguimiento);

                Database db = new Database();
                db.WSLog.Add(wsExternos);
                db.SaveChanges();

                string jsonResponse = wsExternos.JSONResponse;

                var consultarResponse = ConsultarWSResponse.Map(jsonResponse);

                response.Result = consultarResponse;
            }
            catch (Exception ex)
            {
                response.Code  = 500;
                response.Error = "Ocurrio un error al comunicarse con OCASA";

                var message      = ex.Message;
                var messageInner = ex.InnerException != null ? ex.InnerException.Message : "";

                DB.Database db2 = new DB.Database();
                db2.Log.Add(new DB.Log()
                {
                    Fecha = DateTime.Now, Ubicacion = UBICACION_LOG, Mensaje = message, Detalle = messageInner
                });

                db2.SaveChanges();
            }

            return(response);
        }
Example #2
0
        public GenericResponse <RecepcionResponse> Guardar(GuardarRecepcionRequest data)
        {
            GenericResponse <RecepcionResponse> response = new GenericResponse <RecepcionResponse>();

            try
            {
                response.Code = 200;

                Database db = new Database();

                Pedidos ingreso = new Pedidos();
                ingreso.CodigoBarra      = data.NroSeguimiento;
                ingreso.IdDestinatario   = data.IdDestinatario;
                ingreso.EscaneoDePieza   = data.EscaneoSeguridad;
                ingreso.ImprimirEtiqueta = data.ImprimirEtiqueta;

                ingreso.Estado           = Constants.Pedidos.ID_INGRESADO;
                ingreso.EstadoFecha      = DateTime.Now;
                ingreso.EstadoPor        = data.IdUsuario;
                ingreso.FechaImposicion  = DateTime.Now;
                ingreso.IdSector         = data.IdSectorDestinatario;
                ingreso.IdDireccion      = data.IdDireccionDestinatario;
                ingreso.IdProveedor      = data.IdProveedor;
                ingreso.IdCanalizacion   = data.Canalizacion.Id;
                ingreso.IdTipoDeProducto = data.IdTipoProducto;
                ingreso.NroRemito        = data.NroRemitoProveedor;
                ingreso.NroSeguimiento   = data.NroSeguimiento;
                ingreso.Observacion      = data.Observacion;
                ingreso.NroOrdeDeCompra  = data.NroOrdenCompraProveedor;
                ingreso.UsuarioCreador   = data.IdUsuario;


                if (string.IsNullOrEmpty(data.IdRemitente))
                {
                    data.IdRemitente = ConfigurationManager.AppSettings["ID_USUARIO_REMITENTE_MESA"];
                    Destinatarios usuarioRemitente = db.Destinatarios.Where(x => x.Id == data.IdRemitente).FirstOrDefault();

                    data.IdSectorRemitente    = usuarioRemitente.IdSector;
                    data.IdSucursalRemitente  = usuarioRemitente.IdSucursal;
                    data.IdDireccionRemitente = usuarioRemitente.IdBandeja;
                }

                ingreso.IdRemitente          = (string.IsNullOrEmpty(data.IdRemitente) ? "-" : data.IdRemitente);
                ingreso.IdSectorRemitente    = (string.IsNullOrEmpty(data.IdSectorRemitente) ? "-" : data.IdSectorRemitente);
                ingreso.IdSucursalRemitente  = (string.IsNullOrEmpty(data.IdSucursalRemitente) ? "-" : data.IdSucursalRemitente);
                ingreso.IdDireccionRemitente = (string.IsNullOrEmpty(data.IdDireccionRemitente) ? "-" : data.IdDireccionRemitente);

                if (data.IdArchivo != 0)
                {
                    Archivos archivo = db.Archivos.First(x => x.Id == data.IdArchivo);
                    ingreso.Archivos.Add(archivo);
                }



                if (data.Canalizacion.Id != ConfigurationManager.AppSettings["ID_CANALIZACION_RETIRA_COLABORADOR"] &&
                    data.Canalizacion.Id != ConfigurationManager.AppSettings["ID_CANALIZACION_RETIRA_TERCERO"] &&
                    data.Canalizacion.Id != ConfigurationManager.AppSettings["ID_CANALIZACION_RETIRA_LABORAL"])
                {
                    WSExterno.OCASA wsocasa = new WSExterno.OCASA();

                    ImponerWSRequest dataRequest = new ImponerWSRequest();

                    dataRequest.NroSeguimiento = data.NroSeguimiento;
                    dataRequest.Fecha          = DateTime.Now.ToString("dd/MM/yyyy");
                    dataRequest.TipoProducto   = data.IdTipoProducto.ToString();

                    dataRequest.Proveedor                = new ImponerWSRequest.ImponerProveedorWSRequest();
                    dataRequest.Proveedor.Id             = data.IdProveedor.ToString();
                    dataRequest.Proveedor.NroOrdenCompra = data.NroOrdenCompraProveedor;
                    dataRequest.Proveedor.NroRemito      = data.NroRemitoProveedor;
                    dataRequest.Proveedor.RazonSocial    = data.RazonSocialProveedor;
                    dataRequest.Proveedor.Cuit           = data.CuitProveedor;

                    dataRequest.Remitente          = new ImponerWSRequest.ImponerRemitenteWSRequest();
                    dataRequest.Remitente.Id       = data.IdRemitente;
                    dataRequest.Remitente.Sector   = data.IdSectorRemitente;
                    dataRequest.Remitente.Sucursal = data.IdSucursalRemitente;
                    dataRequest.Remitente.Bandeja  = data.IdDireccionRemitente;

                    dataRequest.Destinatario          = new ImponerWSRequest.ImponerDestinatarioWSRequest();
                    dataRequest.Destinatario.Id       = data.IdDestinatario;
                    dataRequest.Destinatario.Bandeja  = data.IdDireccionDestinatario;
                    dataRequest.Destinatario.Sector   = data.IdSectorDestinatario;
                    dataRequest.Destinatario.Sucursal = data.IdSucursalDestinatario;

                    dataRequest.Observacion  = data.Observacion;
                    dataRequest.Canalizacion = data.Canalizacion.Id.ToString();

                    WSLog wsExternos = wsocasa.Imponer(dataRequest);

                    ImponerWSResponse responseWs = ImponerWSResponse.Map(wsExternos.JSONResponse);

                    db.WSLog.Add(wsExternos);
                    db.SaveChanges();

                    if (wsExternos.Estado != "ERROR")
                    {
                        var codebar = responseWs.Pedidos[0].CodigoBarra;

                        if (string.IsNullOrEmpty(codebar))
                        {
                            codebar = ingreso.NroSeguimiento;
                        }

                        ingreso.CodigoBarra = codebar;
                    }

                    string jsonResponse = wsExternos.JSONResponse;
                }

                ingreso = db.Pedidos.Add(ingreso);
                db.SaveChanges();

                if (data.Canalizacion.Id == ConfigurationManager.AppSettings["ID_CANALIZACION_RETIRA_COLABORADOR"] ||
                    data.Canalizacion.Id == ConfigurationManager.AppSettings["ID_CANALIZACION_RETIRA_TERCERO"] ||
                    data.Canalizacion.Id == ConfigurationManager.AppSettings["ID_CANALIZACION_RETIRA_LABORAL"])
                {
                    Engresos egreso = new Engresos
                    {
                        Fecha = DateTime.Now
                    };
                    egreso = db.Engresos.Add(egreso);

                    db.SaveChanges();

                    EgresoPedidos egreped = new EgresoPedidos
                    {
                        IdEgreso = egreso.Id,
                        IdPedido = ingreso.Id
                    };

                    db.EgresoPedidos.Add(egreped);

                    ingreso.Estado      = Constants.Pedidos.ID_DISPONIBLE_PARA_RETIRO;
                    ingreso.EstadoFecha = DateTime.Now;
                    ingreso.EstadoPor   = data.IdUsuario;

                    ingreso.CodigoBarra = ingreso.Id.ToString().PadLeft(13, '0');

                    db.SaveChanges();
                }

                response.Result = new RecepcionResponse()
                {
                    NroSeguimiento = ingreso.NroSeguimiento, IdIngreso = ingreso.Id, CodigoBarra = ingreso.CodigoBarra
                };
            }
            catch (Exception ex)
            {
                response.Code  = 500;
                response.Error = ex.Message;

                var message      = ex.Message;
                var messageInner = ex.InnerException != null ? ex.InnerException.Message : "";

                DB.Database db2 = new DB.Database();
                db2.Log.Add(new DB.Log()
                {
                    Fecha = DateTime.Now, Ubicacion = UBICACION_LOG, Mensaje = message, Detalle = messageInner
                });

                db2.SaveChanges();
            }

            return(response);
        }
        public GenericResponse <bool> Cancel(string codeBar, int idUsuario)
        {
            try
            {
                Database db = new Database();

                WSExterno.OCASA wsocasa = new WSExterno.OCASA();

                WSLog wsExternos = wsocasa.Cancelar(codeBar);

                db.WSLog.Add(wsExternos);
                db.SaveChanges();

                string  jsonResponse = wsExternos.JSONResponse;
                dynamic jobject      = JValue.Parse(jsonResponse);
                //jsonRespone["Status"]
                if (jobject.Status == true)
                {
                    Database context = new Database();
                    Pedidos  pedidos = context.Pedidos.Where(x => x.CodigoBarra == codeBar).FirstOrDefault();
                    pedidos.Estado = Constants.Pedidos.ID_CANCELADO;

                    pedidos.EstadoFecha = DateTime.Now;
                    pedidos.EstadoPor   = idUsuario;

                    pedidos.FechaCancelacion = DateTime.Now;
                    pedidos.CanceladoPor     = idUsuario;
                    context.SaveChanges();

                    return(new GenericResponse <bool>()
                    {
                        Code = 200, Result = true
                    });
                }
                else
                {
                    return(new GenericResponse <bool>()
                    {
                        Code = 500, Error = "No se puede cancelar el pedido"
                    });
                }
            }
            catch (Exception ex)
            {
                var message      = ex.Message;
                var messageInner = ex.InnerException != null ? ex.InnerException.Message : "";

                Database db2 = new Database();
                db2.Log.Add(new Log()
                {
                    Fecha = DateTime.Now, Ubicacion = Constants.LOG_UBICACION_REPORTES, Mensaje = message, Detalle = messageInner
                });

                db2.SaveChanges();

                return(new GenericResponse <bool>()
                {
                    Code = 500, Error = ex.Message
                });
            }
        }